javascript - 如何禁用 :hover when scrolling on mobile?

标签 javascript jquery css performance mobile

我正在做一个已经存在的桌面网站的移动(准确地说是响应式)版本,该网站已经有很多强大的 hover 效果。它经常发生,当我通过触摸屏幕在移动设备上滚动它时,它会触发一些性能较重的 hover 操作,例如在大 box-shadow 中淡入淡出和/或动画 边界。出于明显的原因,我不需要在移动浏览器上使用它,而且我听说仅在移动设备上禁用悬停滚动可以带来很大的性能提升。

有没有办法在仅在移动设备上滚动时轻松地暂时禁用所有悬停效果?它是否安全(从用户体验的 Angular 来看)并且是否值得实现(从性能的 Angular 来看)?

最佳答案

您可以将所有悬停效果设置为仅在 body 具有特定类别时发生。 这将允许您在想要切换效果时简单地添加/删除该类。

HTML

<body class="alloweffects">
<a>Some text</a>
</body>

CSS

.alloweffects a:hover {
color:red;
}

然后,为了仅在滚动期间防止效果,您可以简单地监听 scroll 事件并相应地设置类。

关于性能:

我相信性能提升会很小,但它可能会因浏览器和设备的不同而有所不同。

但基本上它应该意味着更少的事件监听器,意味着更多的内存来处理其他事情,滚动就是其中之一。

如果我们谈论的是大量元素,我相信性能提升会更加显着 - 尤其是在性能较差的设备上。

关于javascript - 如何禁用 :hover when scrolling on mobile?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27681404/

相关文章:

javascript - parse.com 使用 Javascript 多对多获取指针 ID 列表

jquery - $ ("form").valid() 抛出错误,尽管所有文件都包含在布局中

css - 加载 gruntfile.js 任务时如何修复 'SyntaxError: Unexpected identifier Warning: Task "sass“未找到”?

javascript - 当我滚动到每个有缺陷的部分时,菜单项会突出显示

javascript - 刷新 Div 内容(仅限本地 .html)

javascript - 按键组合数组中的项目

javascript - 通过html表单旋转tabindex

javascript - 如何动态确定需要多少个方 block 来填充浏览器窗口?

php - onclick -> mysql 查询 -> javascript;同一页

javascript - 使用 Npm 模块时的 jQuery 插件