2022/4/25 记录一个chrome上backface-visibility和overflow造成的window的scroll监听事件响应不及时的问题bug

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内存也可能有关系。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值