如何禁用iOS浏览器机身上的惯性滚动
How to disable inertial scrolling on body for iOS browsers?
我需要禁用iPad机身元素上的惯性滚动,但保持在没有惯性的情况下滚动页面的能力。
我已经找了一段时间,但没有找到任何好的解决方案。也许我只是没有找到合适的东西?有没有什么破解或变通方法可以让这成为可能?
将其添加到body
元素的CSS:
-webkit-overflow-scrolling: auto;
-webkit-overflow-scrolling
的默认值为touch
。这告诉iOS设备使用"惯性"滚动。文档:https://developer.mozilla.org/en-US/docs/Web/CSS/-webkit-overflow-scrolling
@meuwka答案实现了您的目标,但以一种迂回的方式——它之所以有效,是因为div
元素的默认值是-webkit-overflow-scrolling: auto;
。
您可以使用带有溢出属性的div,它会杀死平滑的iOS滚动
<body>
<div class="scroll">
long long text...
<div>
</body>
Css
html,
body {
height: 100%;
margin: 0;
overflow: hidden;
}
.scroll {
overflow: auto;
height: 100%;
}
http://jsbin.com/palixi/edit
我使用了inobounce
,可以在中找到
您会注意到,您必须为想要滚动的元素指定height
属性和overflow: auto
,包括-webkit-overflow-scrolling: touch;
。医生解释得很好。
仅将-webkit-overflow-scrolling
规则设置为html和body对我不起作用。
我不得不在swift中的viewDidLoad函数中设置webView.scrollView.bounces = false
。试试看,如果它能解决你的问题,请告诉我们。
iOS13更改:
iOS和iPadOS上的加速滚动
加速滚动主框架始终可用iOS上的WebKit。此外,开发人员可以使用名为-webkit溢出滚动可选择快速滚动进行溢出滚动。iPadOS和iOS 13不需要这些。子框架不再扩展到其内容的大小,现在可滚动,溢出:滚动;iframe总是加速滚动。不再需要快速滚动模拟库-webkit溢出滚动:触摸;是iPad上的一个禁止操作。在iPhone上,它仍然有在可滚动元素。开发人员将希望测试他们的内容以查看硬件加速滚动对它的影响和删除不必要的变通办法。
- 禁用(而不是隐藏)浏览器滚动条
- CodeMirror.禁用垂直滚动条
- fullpage.js和物化.js;使用实体侧导航禁用鼠标滚动
- 禁用滚动,但保留滚动条CSS
- 使用基础选项卡时禁用滚动到内容
- 禁用Mac上的橡皮筋滚动
- 整页.js使用连续滚动或循环时禁用 moveSectionUp
- JQuery 自动滚动到底部(但在鼠标滚动时禁用)
- 如何在不检查设备的情况下禁用移动浏览器上的滚动
- JQuery UI在移动设备上可排序禁用滚动
- JS加载顺序 - 滚动JS禁用,回调解决方案,或者更简单
- Twitter引导滚动间谍 - 在平滑滚动时禁用
- CSS 时间轴滚动条禁用导航
- 滚动时禁用事件
- 谷歌地图api之后,网页滚动被禁用
- 竖直滚动的禁用<多个元素不能在IE中工作
- 平滑滚动javascript禁用超链接
- 在iframe滚动之前禁用复选框
- 如何在滚动时禁用jQuery jParallax插件,并在滚动停止时重新启用
- 滚动时禁用滚动