2014-10-07 58 views
6

我需要禁用iPad上的主体元素的惯性滚动,但保持滚动页面的能力而没有惯性。如何禁用iOS浏览器正文上的惯性滚动?

我一直在寻找一些时间,但我还没有找到任何好的解决方案。也许我只是不想找正确的东西?有没有可能使这成为可能的黑客或解决方法?

+2

看看这里:https://gist.github.com/amolk/1599412 – Monte 2014-10-07 12:43:36

+0

基本上,你将不得不阻止用户通过JavaScript“刷新”touchmove事件滑过屏幕。检查Monte的链接评论。 – Alex 2014-10-07 12:55:56

+0

@Monte感谢您的回复,我更新了我的问题,使其更加清晰,因为我仍然希望能够滚动身体,我只需滚动而不出现惯性。 – Finglish 2014-10-07 13:13:19

回答

2

可以使用div与overflow属性,它杀了平稳的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

0

我用inobounce可以发现here

你会发现,你必须指定一个height财产和overflow: auto你想滚动的,包括-webkit-overflow-scrolling: touch;的元素。文档在解释方面做得很好。

9

一下添加到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

这项工作,但在一个价格。你失去了平滑的滚动。 – user3106759 2016-06-27 09:07:11