2012-04-27 11 views
5

Estoy tratando de animar un boxShadow en el evento scroll de mi #container div. Todo funciona, excepto que no puedo encontrar una buena manera de detectar la barra de desplazamiento que llega a la parte superior para que las sombras de caja puedan animarse. Este es mi código hasta ahora¿Detecta cuando la barra de desplazamiento alcanza la parte superior de div?

$('#container').scroll(
     function() 
     { 
      $('#white').animate(
      { 
       boxShadow: "0 8px 8px -7px #696868" 
      }, 
      "fast"); 
      if ($('#container').scrollTop() == 0) 
      { 
       $('#white').animate(
       { 
        boxShadow: "0 0 0 0 #696868" 
       }, 
       "fast"); 
      } 
     } 
    ); 

He añadido una demostración. El inicial sobre animados de desplazamiento funciona perfectamente, pero cuando la barra vuelve al principio de su es una bastante larga demora antes de que el segundo patadas animación en. http://jsfiddle.net/JYqC3/14/

Respuesta

9

Esperanza esto ayuda

Usado .scrollTop

$('#my_div').scroll(function() { 
    var pos = $('#my_div').scrollTop(); 
    if (pos == 0) { 
     alert('top of the div'); 
    } 
}); 

DEMO

EDIT: mejor animación agregada a la demo

+0

Gracias por su respuesta. Esto es básicamente lo que he escrito, si tuviera que poner una alerta en mi declaración if se dispararía justo cuando la barra llegue a la parte superior. Por alguna razón, hay un gran retraso para que la animación entre en la declaración if. – Wilfred

+0

aquí edité el jsfiddle. Desplácese hacia abajo y verá que la sombra aparece instantáneamente, pero cuando se desplaza hacia la parte superior, debe esperar 5 segundos antes de que desaparezca. Estoy usando un plugin de jquery que está incluido en la parte superior del html http://jsfiddle.net/JYqC3/12/ – Wilfred

+0

actualizado mi demo, definitivamente no es la mejor solución, no tuve tiempo, así que hice una reparación temporal – Dhiraj

Cuestiones relacionadas