Web 技术研究所

我一直坚信着,Web 将会成为未来应用程序的主流

平滑滚动与scroll事件触发频率

  浏览器对滚动条的处理方式参差不齐,有些浏览器直接就支持平滑滚动,比如目前的Firefox;而有些浏览器则默认没支持,比如目前的Chrome(当然也可以通过插件来支持)。这就意味着,scroll事件在不同浏览器上的触发频率是存在差异的。
  Firefox中的scroll事件触发频率是Chrome的好几倍,可以通过下面这个代码测试出来:
<style>
body {height:1024px;}
</style>
<script>
addEventListener("scroll",function(e){
  console.log("scroll");
});
</script>

  同样长的滚动条,Firefox滚动到底下触发了15次,而Chrome只触发了3次。如果在scroll事件中有什么比较耗性能的代码或一些异步网络请求,Firefox上就会出问题。
  从用户体验上来说,平滑滚动的用户体验确实好。现在的移动设备上基本都是平滑滚动,它们甚至还有一些物理引擎的支持。所以平滑滚动是将来的趋势,在写程序时应该将平滑滚动的情况优先考虑,尽量不要把什么奇葩的代码放在scroll事件中处理。
  另外,除了浏览器自带的平滑滚动问题外据说还有一些硬件对系统的鼠标滚轮事件也做平滑处理,这会导致鼠标滚轮事件的触发频率上升(其实我也没见过这样的硬件,只是据说有)。这也是同类问题,所以这些看似触发频率不高的事件也许在某些特定情况下会突然暴走,写程序时候要考虑这些问题。
网名:
34.203.213.*
电子邮箱:
仅用于接收通知
提交 悄悄的告诉你,Ctrl+Enter 可以提交哦
神奇海螺
[查看全部主题]
各类Web技术问题讨论区
发起新主题
本模块采用即时聊天邮件通知的模式
让钛合金F5成为历史吧!
次碳酸钴的技术博客,文章原创,转载请保留原文链接 ^_^