Avoiding unnecessary paints through disabling hover effects as the user scrolls
http://www.thecssninja.com/javascript/pointer-events-60fps
A Pen by Ziogas Chris on CodePen.
Avoiding unnecessary paints through disabling hover effects as the user scrolls
http://www.thecssninja.com/javascript/pointer-events-60fps
A Pen by Ziogas Chris on CodePen.
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> | |
<div class="element"> | |
test | |
</div> |
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); |
@import "compass"; | |
.disable-hover { | |
pointer-events: none; | |
} | |
.element { | |
margin-bottom: 10px; | |
box-shadow: 1px 1px 1px #000; | |
&:hover { | |
box-shadow: 1px 1px 3px red; | |
} | |
} |