Класс переключения jquery не работает полностью - PullRequest
0 голосов
/ 28 февраля 2012

Это даже предполагает перемещение элемента div путем добавления к нему класса.Но движется ли рано?.title не достиг вершины, и он уже в пути!?

$(document).ready(function(){
   $(window).scroll(function() {
    var moveit = $('.title'), //the titles are to move
        targetScroll = $('.title').position().top, //when .title is at top
        currentScroll = $(document.body).scrollTop();

    moveit.toggleClass('down', currentScroll >= targetScroll);
  });
});

#box #left ul li:hover .down {
  top: 500px;
}

.down включается слишком рано.

Что я делаю не так ... Это смотрит на менялицо не так ли?

1 Ответ

0 голосов
/ 28 февраля 2012

Это потому, что jQuery использует собственные очереди для обработки анимации.Это просто шаги к следующей строке.Если вы хотите знать, когда прокрутка закончена, лучше всего использовать плагин scrollTo: http://flesler.blogspot.com/2007/10/jqueryscrollto.html

Это позволит вам ввести функцию, которая выполняется при завершении прокрутки.Используйте параметр onAfter в хеш-объекте.

ОБНОВЛЕНИЕ

Я надеюсь, что нашел его.Вы проверяете против document.body.Значение прокрутки всегда равно 0 тела.Поэтому, пожалуйста, проверьте: $(document).scrollTop().

http://jsfiddle.net/RVbCq/1/

...