【问题标题】:iOS safari update element while scrolling滚动时的iOS Safari更新元素
【发布时间】:2014-02-03 07:49:05
【问题描述】:

我希望在 HTML 页面中获得与 ios google chrome 的标题类似的行为:当用户开始滚动到顶部(从页面的任何位置)时,页面标题的显示就好像它只是坐着一样更多。当用户滚动到底部时 - 标题只是保持它的位置并向上滑动。

我添加了一个 'touchmove' 事件来捕获滚动坐标,并且可以将它记录到某个 div 中,只是为了检查它是否正常工作并且看起来工作正常,除了标题的位置在滚动时没有更新。一旦滚动停止,标题的位置就会按预期更新。

所以我的问题是:是否可以在用户滚动时更新元素?

我宁愿不改变滚动元素的内容(而不是滚动页面本身)。

似乎没有解决方法,来自 Jquery.mobile 页面:

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

【问题讨论】:

    标签: css mobile-safari


    【解决方案1】:

    您是否有一些我们可以查看的代码?

    不过,如果您使用的是 jQuery,请查看此插件:http://wicky.nillia.ms/headroom.js/

    它提供了您正在寻找的功能。

    【讨论】:

    • 无关紧要,代码可以像 $(document).on('touchmove', function(){ $('#target').css('top', ( value + 1) + 'px')}),如果您能够告诉我如何在用户滚动期间更改元素(比如最好更改背景颜色或位置),我会接受答案。
    • 感谢您的链接,我自己也做过类似的事情,但它不适合我的客户:(
    • 谢谢,这实际上是一个有趣的想法 - 使用超时,但它也不起作用。我猜ios只是在滚动期间冻结布局和JS,我可以理解原因,只是想也许有解决方法。你在 ios 上看过 google chrom 吗?很难解释我想要实现的确切行为......首先,标题应该随着滚动而移动,而不是滚动启动标题的动画。
    • 实际发生的是DOM绘制暂停,js代码执行没有阻塞。这篇文章很好理解:developer.telerik.com/featured/…
    猜你喜欢
    • 1970-01-01
    • 2021-11-17
    • 2020-05-01
    • 2015-12-28
    • 2013-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多