4

我正在尝试创建简单的视差效果来改变背景位置,但在 iOS Safari 中移动并不顺畅。只有当我释放触摸屏时背景才会改变它的位置,但当我滚动它时不会改变它的位置。

Javascript:

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

它实际上不仅发生在 chnagingbackgroundPosition中,还发生在topfor div 元素中:

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

但同时margin-top工作正常,运动平稳。

我做错了什么,如何让它以与鼠标滚轮事件相同的方式在 iOS 上工作?

4

1 回答 1

1

iOS 浏览器会在滚动或手势发生时冻结 DOM 操作。这是无法解决的,因为这是浏览器的问题。来自jQuery Mobile,它说:

请注意,iOS 设备在滚动期间冻结 DOM 操作,将它们排队以在滚动完成时应用。

于 2013-03-24T09:52:27.707 回答