我在 javascript 中使用视差效果,但 iPad 出现问题。
我知道 webkit 触摸设备上不会触发“$(window).scroll” - 只有当我们释放屏幕时 - 所以我正在使用:
window.addEventListener("touchmove", triggerScroll, false);
function triggerScroll(event)
{
var scrollTop = $(window).scrollTop();//event.touches[0].pageY; //window.pageYOffset();
$("#allCanvas .divCanvas").each(function(index, element) {
var speed = $(element).data('speed');
var initialTop = $(element).data('initialtop');
$(element).css('top', initialTop-(scrollTop*speed));
});
}
问题是它会在顶部或底部闪烁 .divCancas 几个像素,具体取决于我是滚动到顶部还是向下。
我跟踪了 $(element).css('top', initialTop-(scrollTop*speed)); 上传递的 TOP 值 而且每次都是正确的。正确的“TOP”值,即使 webkit 将它移动几毫秒到错误的位置。
我也试过:-“margin-top”而不是“top”,没有区别。- 删除所有其他对象并使“.each”循环仅通过一个 div,所以我想这不是 jQuery 性能问题。
有没有人遇到过这个问题?
非常感谢迭戈