【问题标题】:Mobile scroll animation Lag - jQuery移动滚动动画滞后 - jQuery
【发布时间】:2018-04-08 19:07:10
【问题描述】:

我正在尝试复制从才华横溢的网页设计师 Nathan Riley (https://nrly.co/) 那里找到的滚动动画。

我通过一些小代码从 html 更改 svg 过滤器代码中的属性非常容易地实现了这一点。但问题是,在移动设备上查看页面时,动画非常缓慢且滞后。

我写的代码:

html 过滤器:

<svg>
    <defs>
        <filter id="liquify">
            <feturbulence basefrequency="0" numoctaves="3" result="warp" type="fractalNoise"></feturbulence>
            <fedisplacementmap in="SourceGraphic" in2="warp" scale="100" xchannelselector="R" ychannelselector="B"></fedisplacementmap>
        </filter>
    </defs>
</svg>

在css中应用过滤器:

.liquify {
filter: url(#liquify);}

使用 scrollTop 制作动画的 jQuery 代码:

function liqScroll() {
var scrollTop = $(window).scrollTop();
$("#liquify > feTurbulence").attr({
    'baseFrequency' : +scrollTop / 100000,
});};

你们知道如何解决/解决滞后问题吗?

sitenote:在 Firefox 上,我在控制台中收到以下消息,这可能与它有关:

此站点似乎使用了滚动链接定位效果。这可能不适用于异步平移;请参阅https://developer.mozilla.org/docs/Mozilla/Performance/ScrollLinkedEffects 了解更多详情并加入有关相关工具和功能的讨论!

【问题讨论】:

  • 每次使用脚本监控滚动和定位元素时,都会看到此 Firefox 警告。移动设备通常不使用对 scroll 事件的直接监控,而是在事件发生 之后进行所有计算 - 这就是您看到滞后的原因。
  • 所以 nrly.co 投资组合在移动设备上运行良好。他的伎俩是什么/我该如何解决?
  • 其实我才发现firefox的警告跟这个没有关系。它出现在我用来淡出滚动元素的另一个函数中。

标签: jquery html css


【解决方案1】:

我现在明白了,导致我滞后的原因是 html 中缺少视口元标记。这导致具有默认缩放级别,这使得动画更新频率降低,从而导致滞后。

同样使用 js 插件 ScrollMagic 可以很好地实现这一目的,而不是自己编写代码。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-09-23
    • 1970-01-01
    • 2020-12-25
    • 1970-01-01
    • 1970-01-01
    • 2010-10-14
    • 1970-01-01
    相关资源
    最近更新 更多