Jquery 在mobile safari中滚动设置动画

Jquery 在mobile safari中滚动设置动画,jquery,css,mobile,css-transitions,fixed,Jquery,Css,Mobile,Css Transitions,Fixed,我有一个标题的位置:固定和里面我有一个标志。标题在滚动中添加了一个类“small”,将徽标从一个大图像更改为一个小图像,并使用CSS3转换实现平滑转换 $(document).on("scroll",function(){ if($(document).scrollTop()>70){ $("header").removeClass("large").addClass("small"); } else{

我有一个标题的位置:固定和里面我有一个标志。标题在滚动中添加了一个类“small”,将徽标从一个大图像更改为一个小图像,并使用CSS3转换实现平滑转换

  $(document).on("scroll",function(){
        if($(document).scrollTop()>70){ 
            $("header").removeClass("large").addClass("small");
            }
        else{
            $("header").removeClass("small").addClass("large");
            }
        });
这在桌面上的所有浏览器中都可以正常工作。我遇到的问题是在使用Safari或Chrome的iOS上,当我滚动时,动画只会在手指释放后发生,这会造成一种难看的用户体验。是否有方法检测滚动手势,以便在滚动视口时根据速度设置动画

请注意,iOS设备在滚动期间冻结DOM操作,将它们排队等待滚动完成时应用。我们目前正在研究允许在滚动开始之前应用DOM操作的方法

编辑:检查并获取有关此语句的更多信息

所以,回答你的问题,不!没有办法那样做。。然而


编辑:无论如何。看一看。使用“伪造”本机滚动条的JS,您可以毫无顾忌地执行所需操作。

绑定到事件“touchmove”。请注意,滚动期间发生的DOM更新不可靠。例如,我可以将文本附加到div,但不能附加到prepend。我可以将img标记附加到div,但不能更新现有图像元素的src。(当我说不能-我的意思是我可以,但更改直到滚动结束后才被绘制。当我说“我可以”时,我的意思是更改立即被绘制)

他们做了一件非常棒的工作。恕我直言,这是错误的。您的源代码没有声明源代码,我可以在“touchmove”事件中操作DOM,并将文本附加到div。我甚至可以将图像标记附加到div,并在触摸屏幕时加载。“我的源代码”是jQuery站点,因此它们不是真正的新手。无论如何,几个月过去了。幸运的是,更新可能已经修复了此问题。这个答案是6个月前给出的,他们的页面上说的是问题的简化。您可以操纵DOM,但只能是有时。例如,如果DOM更新触发CSS转换,则在滚动时该转换将暂停。更新现有DOM元素的属性是排队的,而追加新的DOM元素则不是(取决于影响追加的DOM元素的CSS)。总之,更新DOM是非常不可靠的,但有些更新有时会起作用。无论句子是否简化,无论某些转换是否在“绘制”之前暂停,该语句都不是“错误的”。你能说的就是它“不准确”。无论如何,谢谢你提供的细节,我相信很多像我这样的设计师会发现这非常有趣和准确:)我也在我的答案中添加了你的信息(引用)。