如何在iOS浏览器上禁用惯性滚动?

时间:2014-10-07 12:21:33

标签: javascript jquery html css mobile-safari

我需要禁用iPad上的身体元素的惯性滚动,但是能够在没有惯性的情况下滚动页面。

我一直在寻找一些时间,但我找不到任何好的解决方案。也许我只是不寻找正确的事情?是否有任何黑客或解决办法可以实现这一目标?

5 个答案:

答案 0 :(得分:17)

将此添加到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;

答案 1 :(得分:4)

你可以使用带溢出属性的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

答案 2 :(得分:0)

我使用了inobounce height

您会注意到您必须为要滚动的元素指定overflow: auto属性和-webkit-overflow-scrolling: touch;,包括{{1}}。文档在解释方面做得很好。

答案 3 :(得分:0)

仅将 return value.filter(result => { return config.some((type) => result[type].toString().toLowerCase().indexOf(q) > -1) }); 规则设置为html和body对我不起作用。

我必须迅速在viewDidLoad函数中设置-webkit-overflow-scrolling。尝试一下,让我们知道它是否可以解决您的问题。

答案 4 :(得分:0)

iOS13 changes

iOS和iPadOS上的加速滚动

加速滚动主框架始终可用 iOS上的WebKit。此外,开发人员可以使用名为 -webkit-overflow-scrolling选择加入快速滚动进行溢出滚动。 iPadOS和iOS 13不需要这些。 不再扩展到其内容的大小,现在 可滚动,并溢出:滚动;而且iframe总是会加速 滚动。不再需要快速滚动的仿真库,并且 -webkit-overflow-scrolling:触摸;在iPad上没有操作。在iPhone上,它仍然具有在CSS上创建CSS堆栈上下文的副作用。 可滚动元素。开发人员将需要测试其内容才能看到 硬件加速滚动到处如何影响和移除 不必要的解决方法。