我正在使用javascript的视差效果,但我遇到了iPad的问题。
我知道“$(window).scroll”不是在webkit touch devides上触发的 - 只有在我们发布屏幕时 - 所以我正在使用:
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闪烁几个像素到顶部或底部,这取决于我是否向上或向下滚动。
我跟踪了传递给$(元素).css('top',initialTop-(scrollTop * speed))的TOP值;而且每次都是正确的。正确的“TOP”值,尽管webkit将它移动几个milleseconds到错误的位置。
我也尝试过: - “margin-top”而不是“top”,没有区别。 - 删除所有其他对象并使“.each”循环只通过一个div,所以我猜这不是一个jQuery性能问题。
有没有人遇到过这个问题?
非常感谢 迭
答案 0 :(得分:0)
也许尝试使用一些-webkit css动画功能......这些功能在iOS设备上运行得非常顺畅。这是一个很棒的演示(仅限webkit):http://jibjub.com/demo/HTML5/cube.html