我试图创建简单的视差效果改变背景位置,但在iOS Safari中移动不流畅。背景只有在我释放触摸屏时才会改变位置,但在我滚动它时不会。
Javascript: $(window).bind('touchmove',function(e){
var scrolled = $(window).scrollTop();
$('#home').css('backgroundPosition', 'center ' + (0-(scrolled*2)) +'px');
});
对于div元素,不仅改变了backgroundPosition
,也改变了top
:
$('#home').css('top', (scrolled*2) +'px');
,但同时margin-top
工作良好,运动平稳。
我做错了什么,我怎么能使它的工作在iOS的鼠标滚轮事件相同的方式?
iOS浏览器会在滚动或手势发生时冻结DOM操作。这是无法修复的,因为这是浏览器的问题。来自jQuery Mobile,它说:
请注意,iOS设备在滚动、排队期间冻结DOM操作当滚动结束时应用