2013-03-24 75 views
4

我试图创建简单的视差效果改变背景位置,但在iOS Safari中移动不平滑。只有当我释放触摸屏时,背景才会改变它的位置,但当我滚动它时不会。iOS touchmove事件 - 更改backgroundPosition不光滑

的Javascript:

$(window).bind('touchmove',function(e){ 
     var scrolled = $(window).scrollTop(); 
     $('#home').css('backgroundPosition', 'center ' + (0-(scrolled*2)) +'px'); 
    }); 

事情确实发生不仅与chnaging backgroundPosition,而且还与top的div元素:

$('#home').css('top', (scrolled*2) +'px'); 

,但在同一时间margin-top工作正常,动作顺畅。

我在做什么错,我该如何使它在iOS中的工作方式与mousewheel事件相同?

回答

1

iOS浏览器将在滚动或手势发生时冻结DOM操作。这是无法修复的,因为这是浏览器的问题。从jQuery Mobile,它说:

需要注意的是iOS设备滚动时冻结DOM操作,排队 他们申请滚动完成时。