【发布时间】:2018-01-26 20:23:52
【问题描述】:
自从引入 FF 52 以来,我在执行滚动事件时遇到了同样的滞后问题,尤其是在使用鼠标滚轮时 - 同样的事情也发生在 IE Edge 上,但它被认为是少数,现在有了添加 FF 必须找到某种解决方案。
我在网上创建了一个小提琴来复制该问题 - 该问题在 FF 和 IE edge 上可见,而它在 webkit 浏览器中运行顺畅。
这是我正在使用的简单滚动功能:
$('.scrollable').on('scroll', function() {
scrollY = $(this).scrollTop();
$(this).find('td:first-child span').attr('style', 'transform:translateY(' + -scrollY + 'px)');
})
https://jsfiddle.net/nfmLa7mn/3/
如果您使用鼠标滚轮滚动,问题会更加明显。这是一个小的滞后,但它就在那里。在更复杂的布局中,这个问题更加明显。
只有我一个人对此感到困扰吗?我还没有在网上看到任何其他类似的主题。有什么我不知道可以以更好的方式触发滚动事件的方法吗?或者有没有其他方法可以解决这个问题?
【问题讨论】:
-
@TimVermaelen 限制或消除表格滚动?真的很糟糕的用户体验......
-
是的,我不是在看你在滚动什么……一个表格,整个页面……没关系。我说的是事件快速触发并每秒 100 次计算你的逻辑......
-
@TimVermaelen 看起来我误解了节流的工作原理。滞后现在是诱发而不是仅仅发生,但这可能是一个很好的方法。
-
它应该为手机等速度较慢的设备打开更多内存。说到记忆,我这边一点也不落后。在 Chrome、FF、IE 中测试。 Chrome 使用 V8 引擎来优化性能。因此,如果另一个进程正在减慢它的速度,这对您来说确实有意义。
标签: javascript jquery css firefox