chrome 100.0.4896.127,同时期的火狐也一样,ie10和ie11也同样
先普及下backface-visibility主要是用于transform3d中x轴y轴旋转后背面是否可见的样式
问题发生在一个dom,同时使用overflow:scroll和backface-visibility:hidden时
可能导致鼠标滚轮滚动时,window的scroll监听事件响应不及时的问题,(表现在对dom的操作滞后,例如通过改变dom的位置实现dom的吸顶会失效)
目前发现以下可能性
1、可能与电脑显卡或者处理器有关系,
2、页面dom复杂的情况下时必现的,
3、反复上下滚动也容易复现
4、拖拽滚动条则不会出现这个问题
代码如下,可以保存为html文件后在chrome里打开
<html>
<head>
<style>
body{
height:100%;
position:absolute;
overflow-y:scroll;
margin:0;
padding:0;
}
.a{
height:100000px;
display:inline-block;
background-color:green;
width:100px;
position:relative;
}
#float{
width:100px;
height:30px;
background-color:red;
position:relative;
z-index:99;
}
#wrap{
width:200px;
height:500px;
overflow-y:scroll;
backface-visibility:hidden;
display:inline-block;
border:1px solid black;
}
</style>
</head>
<body>
<div id="wrap">
<div id="float">aaa</div>
<div class="a"></div>
</div>
</body>
<script>
let d = document.getElementById("float");
let wrap = document.getElementById("wrap");
//监听鼠标滚动
window.addEventListener("scroll",function(e){
let t = wrap.scrollTop;
console.log(t);
d.style.top=t+'px';
},true);
</script>
</html>
个人推断,拖拽滚动条,无论多快也不会出现这个问题,可以推测出,这个bug应该是和浏览器对内容的渲染有关系,chrome中在dom较少的情况下,滚动鼠标滚轮间歇性会出现这个问题,说明和cpu内存也可能有关系。