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)");
}
});
});
提琴添加:https://jsfiddle.net/2bos5oqh/4/
动画是否有动画持续时间?如果是这样,则可能在单个更新完成之前多次触发滚动事件。
尝试取消该函数https://davidwalsh.name/javascript-debounce-function
相关文章:
- CSS-若窗口太小,滚动条会出现在“表格”单元格上
- 禁用(而不是隐藏)浏览器滚动条
- 在firefox和chrome中的左侧显示iframe滚动条
- jquery:将动画绑定到滚动条位置的更好方法
- 在窗口中添加滚动条
- 如何查明鼠标按下事件是否发生在滚动条上或元素中的其他任何位置
- 使用没有插件的javascript自定义滚动条
- CodeMirror.禁用垂直滚动条
- 在滚动时,在隐藏滚动条和隐藏溢出的同时触发事件
- 可以'无法使滚动条正常工作
- 强制滚动条覆盖页面内容
- 如何隐藏滚动条,但希望它继续工作
- 滚动所有嵌套的滚动条,使HTML元素进入视图
- 使用浏览器滚动条而不是iframe滚动条
- 滚动条在关闭引导对话框后消失
- javascript/获取滚动条位置的回调
- 可调整滚动条大小
- 去掉滚动条
- 隐藏滚动条,而不影响页面宽度或页面重新呈现抖动
- Div元素朝相反方向移动会导致滚动条抖动