Div 向相反方向移动的元素导致滚动抖动
Div elements moving in opposite directions causes scroll to jitter
我正在创建一个滚动效果,使每个图像在滚动时向相反的方向移动。我已经做到了这一点,但是滚动越多,滚动变得越不平滑,越不稳定。
我相信这是因为我不断地获取每个图像(项目)与视口顶部的距离。有谁知道如何解决这个问题?
var $animatedEls = $(".block-inner");
$(window).scroll(function(e) {
e.preventDefault();
var scrollTop = $(window).scrollTop();
var offset = 0;
// Loop through each image (.block-inner)
$.each($animatedEls, function(i, item) {
// Get offset for each .inner-block
offset = $(item).offset().top - scrollTop;
console.log(i+') '+offset);
// Apply to every second item
if (i % 2) {
$(item).css("transform","translateY(-" + (offset/20) + "px)");
} else {
$(item).css("transform","translateY(" + (offset/20) + "px)");
}
});
});
Fiddle 添加:https://jsfiddle.net/2bos5oqh/4/
动画有动画时长吗?如果是这样,则可能是滚动事件在单次更新完成之前触发了多次。
我正在创建一个滚动效果,使每个图像在滚动时向相反的方向移动。我已经做到了这一点,但是滚动越多,滚动变得越不平滑,越不稳定。
我相信这是因为我不断地获取每个图像(项目)与视口顶部的距离。有谁知道如何解决这个问题?
var $animatedEls = $(".block-inner");
$(window).scroll(function(e) {
e.preventDefault();
var scrollTop = $(window).scrollTop();
var offset = 0;
// Loop through each image (.block-inner)
$.each($animatedEls, function(i, item) {
// Get offset for each .inner-block
offset = $(item).offset().top - scrollTop;
console.log(i+') '+offset);
// Apply to every second item
if (i % 2) {
$(item).css("transform","translateY(-" + (offset/20) + "px)");
} else {
$(item).css("transform","translateY(" + (offset/20) + "px)");
}
});
});
Fiddle 添加:https://jsfiddle.net/2bos5oqh/4/
动画有动画时长吗?如果是这样,则可能是滚动事件在单次更新完成之前触发了多次。