[英]scrollTop doesn't work with -webkit-overflow-scrolling: touch
我有一个内置在Phonegap中的单页面应用程序,我在使用时遇到了iOS设备(不是android)的问题:
document.querySelector('page').scrollTop = 0;
如果我导航到另一个页面并且我刚刚来自的视图有scrollTop //38
它将保持相同的scrollTop //38
因为我只更改了page
内的内容。
所以我会使用上面的jS
编辑滚动顶部,所以这样做:
document.querySelector('page').scrollTop //outputs 38
太棒了,但是当我触摸屏幕时,它会跳下38px
并重置scrollTop = 38
。
如果我删除
page {
-webkit-overflow-scrolling: touch;
}
然后这个问题就不再发生了,但是平滑的滚动会停止,并且只有在你触摸屏幕时才会滚动。
现在有人如何正确使用scrollTop
同时保持这种滑动效果本身有效吗?
我认为这是因为JS和CSS中的查询选择器page
。
选择器page
表示带有标签名称page
标签,如下所示:
<page foo="bar"></page>
这不是有效的标准HTML5元素。
你指.page
或#page
这分别是类名和ID。
我试过了,每件事情都很好。
HTML
<div class="page">
foo<br>bar<br>
foo<br>bar<br>
foo<br>bar<br>
foo<br>bar<br>
foo<br>bar<br>
foo<br>bar<br>
foo<br>bar<br>
foo<br>bar<br>
foo<br>bar<br>
foo<br>bar<br>
</div>
CSS
.page {
display: block;
width: 10em;
height: 5em;
overflow: auto;
-webkit-overflow-scrolling: touch;
}
JS
document.querySelector('.page').scrollTop = 0;
当我触摸屏幕或其上时,页面没有意外跳跃。
console.log(document.querySelector('.page').scrollTop);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.