我知道這是偉大的Web開發人員現在可以做到這樣的事情沒有JS:位置粘
.sticky {
position: -webkit-sticky;
position: -moz-sticky;
position: -ms-sticky;
position: -o-sticky;
top: 15px;
}
VS
<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具有相同的渲染效果?
的瀏覽器可能做了類似的事情,並可能進行了優化。你到底在問什麼? – bfavaretto
如果瀏覽器中的瀏覽器的速度有所不同,爲什麼? – 1337
我認爲這至少是Webkit控制它的一部分:https://github.com/WebKit/webkit/blob/8969a62271d35b53a978416cfb1d6f69718b0153/Source/WebCore/page/scrolling/ScrollingStateStickyNode.h –