我有一个带有可滚动内容的div,当scrollTop值达到一定程度时,回到顶部。
var container = document.getElementById('container');
function scroll_function() {
var new_position_top = container.scrollTop;
if (new_position_top > 600) {
container.scrollTop = 0;
}
}
container.addEventListener('scroll', scroll_function);
#container {
width: 300px;
height: 300px;
overflow: auto;
border: 1px solid black;
-webkit-overflow-scrolling: touch;
}
span {
width: 100%;
height: 1200px;
float: left;
background: red;
background: -webkit-linear-gradient(red, yellow);
background: -o-linear-gradient(red, yellow);
background: -moz-linear-gradient(red, yellow);
background: linear-gradient(red, yellow);
}
<div id="container">
<span></span>
</div>
使用 MacBook 触摸板时,我遇到了不同的行为:
Chrome 和 Safari 的表现符合我的预期,在返回顶部后继续惯性滚动。
然而,Firefox 在返回顶部后停止惯性滚动。
在 iOS Safari 中也出现了类似的问题,因为 scrollTop 位置直到惯性结束才会更新。
有更好的解决方法或修复桌面版 Firefox 和 iOS Safari 行为的方法吗?