1

我在 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 性能问题。

有没有人遇到过这个问题?

非常感谢迭戈

4

1 回答 1

0

也许尝试使用一些 -webkit css 动画功能......这些在 iOS 设备上运行非常流畅。这是一个很棒的演示(仅限 webkit):http: //jibjub.com/demo/HTML5/cube.html

于 2012-05-03T07:09:36.660 回答