我在div列表上有一个悬停效果,CSS是:
.product:hover {
background-color: #f6f6f7;
border-left-color: #f6f6f7 !important;
border-right-color: #f6f6f7 !important;
outline: 10px solid #f6f6f7;
z-index: 1;
}
我希望当用户滚动页面时不会触发此悬停效果,以免强制浏览器重新绘制/重排。
所以我尝试了:
doc = $(document)
doc.scroll(->
$('.product').unbind('mouseenter').unbind('mouseleave')
)
但它似乎不起作用,当我滚动时,悬停效果仍然会触发。知道为什么吗?或者我是如何实现这一目标的?
最佳答案
将其添加到您的 css 样式页面
.disable-hover {
指针事件:无;
}
您要做的就是在开始滚动时将 .disable-hover 类添加到正文中。然后,这允许用户光标穿过主体,从而禁用任何悬停效果。
var body = document.body,timer;
window.addEventListener('scroll', function() {
clearTimeout(timer);
if(!body.classList.contains('disable-hover')) {
body.classList.add('disable-hover')
}
timer = setTimeout(function(){
body.classList.remove('disable-hover')
},500);
}, false);
添加此脚本并执行它将起作用:-
关于javascript - 禁用滚动上的悬停以防止浏览器重绘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28150451/