【发布时间】:2016-10-08 20:00:28
【问题描述】:
我有一个带有可滚动内容的 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 也会出现类似的问题,因为滚动顶部位置在惯性结束之前不会更新。
是否有更好的解决方法或修复桌面 Firefox 和 iOS Safari 行为的方法?
【问题讨论】:
-
提供的小提琴在 Firefox 上运行良好...
-
使用触控板,在您的 Firefox 中,它会继续使用它在顶部时的惯性(而不是像我一样停下来)?
标签: javascript firefox scroll