Я написал несколько jquery, чтобы вычислить высоту 4 элементов по классу css и получить их высоту, а затем сравнить высоту с тем, насколько далеко прокручена страница. Если страница прокручивается или проходит мимо каждого элемента, добавляется класс css, который анимирует элемент.jQuery addClass на основе того, насколько далеко прокручивается
Проблема, с которой я сталкиваюсь, заключается в том, что jquery добавляет классы ко всем элементам, как только страница прокручивается к первому элементу, а не добавляет класс к каждому, пока он прокручивается.
Что не так с моим jquery, что он делает это?
Вот jsfiddle http://jsfiddle.net/94kP6/7/
Это JQuery часть кода
// element animation scroll detection
(function ($, document, undefined) {
var animation1 = $('.animation1').height();
var animation2 = $('.animation2').height();
var animation3 = $('.animation3').height();
var animation4 = $('.animation4').height();
$(window).scroll(function() {
var winTop = $(window).scrollTop();
if(winTop >= (animation1)){
$('.animation1').addClass("animate-from-left");
}
if(winTop >= (animation2)){
$('.animation2').addClass("animate-from-right");
}
if(winTop >= (animation3)){
$('.animation3').addClass("animate-from-left");
}
if(winTop >= (animation4)){
$('.animation4').addClass("animate-from-right");
}
});
})(jQuery, document);
Вы, вероятно, хотите, чтобы проверить высоту элемента + элемента смещения (или положение). – Derek
Высота каждого элемента составляет 100-200 пикселей, поэтому вы прокручиваете это довольно рано. Вам нужно найти расстояние каждого элемента от верхней части страницы. –
Вы используете «height» вместо scrollTop или offset. – ntgCleaner