Javascript 位置粘性
我知道web开发人员现在不用js就能完成这样的任务,这很好:Javascript 位置粘性,javascript,css,performance,Javascript,Css,Performance,我知道web开发人员现在不用js就能完成这样的任务,这很好: .sticky { position: -webkit-sticky; position: -moz-sticky; position: -ms-sticky; position: -o-sticky; top: 15px; } vs .粘的{ 位置:固定; 排名:0; } .标题{ 宽度:100%; 背景#F6D565; 填充:25px0; } var header=document.querySelecto
.sticky {
position: -webkit-sticky;
position: -moz-sticky;
position: -ms-sticky;
position: -o-sticky;
top: 15px;
}
vs
.粘的{
位置:固定;
排名:0;
}
.标题{
宽度:100%;
背景#F6D565;
填充:25px0;
}
var header=document.querySelector('.header');
var origOffsetY=header.offsetTop;
函数onScroll(e){
window.scrollY>=origOffsetY?header.classList.add('sticky'):
header.classList.remove('sticky');
}
文件。添加的文件列表(“滚动”,在滚动条上);
但是在实际浏览器的引擎盖下,它不是在做同样的渲染,并且占用同样的内存量吗。从本质上讲,浏览器中是否有较低级别的代码呈现CSS的位置:-webkit粘滞,并且呈现方式与上面的javascript相同
从本质上讲,浏览器中是否有较低级别的代码呈现CSS的位置:-webkit粘滞,并且呈现方式与上面的javascript相同
不需要。浏览器不必做同样的事情
通过对粘性区域的本机支持,对于每个剪裁区域,浏览器可以维护两个单独的图形缓冲区——一个用于非粘性内容(大小为容器),另一个用于粘性内容(大小为视口)。在卷轴上,它
浏览器可能正在执行类似的操作,并且可能已经优化。你到底在问什么?如果浏览器中较低级别的速度有差异,为什么?我想这至少是Webkit控制速度的一部分:谢谢你,迈克,不知道浏览器可以维护多个图形缓冲区比在浏览器的较低级别代码基上操作DOM更有意义。@1337,许多窗口系统使用多个缓冲区来实现平滑的无闪烁扫描。当渲染器无法控制屏幕刷新的时间时,这一点尤为重要。解释。
<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>