Web 開発者が js なしで次のようなことを達成できることは素晴らしいことだと思います。
.sticky {
position: -webkit-sticky;
position: -moz-sticky;
position: -ms-sticky;
position: -o-sticky;
top: 15px;
}
対
<style>
.sticky {
position: fixed;
top: 0;
}
.header {
width: 100%;
background: #F6D565;
padding: 25px 0;
}
</style>
<div class="header"></div>
<script>
var header = document.querySelector('.header');
var origOffsetY = header.offsetTop;
function onScroll(e) {
window.scrollY >= origOffsetY ? header.classList.add('sticky') :
header.classList.remove('sticky');
}
document.addEventListener('scroll', onScroll);
</script>
しかし、実際のブラウザの内部では、同じ種類のレンダリングを行っているわけではなく、同じ量のメモリを消費しています。本質的に、CSS をレンダリングするブラウザには、-webkit-sticky という位置を見つけ、上記の JavaScript と同じレンダリングを行う下位レベルのコードがありますか?