适用于iOS的Javascript:Elastic Sc​​rolling,不会禁用所有滚动

时间:2012-02-08 01:26:05

标签: javascript ios scroll

我想做两件事:

  1. 禁用文档的弹性滚动
  2. 启用div.master
  3. 的滚动功能

    我知道你可以使用以下方法禁用弹性滚动:

    document.addEventListener('touchmove',function(e) { e.preventDefault() },false);
    

    然而,这会禁用所有滚动,而不仅仅是弹性滚动。我想也许你可以只为div.master再次启用滚动,但我不确定你会怎么做。

    I want just this section to scroll

3 个答案:

答案 0 :(得分:1)

使用以下命令禁用页面的默认滚动:

document.body.ontouchmove = function(e) { e.preventDefault(); }; 

document.body.addEventListener('touchmove', function(e) { e.preventDefault(); }, false);

并启用一些CSS滚动:

.scrolling {
   overflow: auto;
   -webkit-overflow-scrolling: touch;
}

要完全删除弹性滚动,您必须将滚动div包含在另一个滚动div中:

<div class="scrolling">
  <div class="scrolling">
    // Your content goes here
  </div>
</div>

答案 1 :(得分:0)

嗯,我完全不知道,但iScroll做到了。要获得更好的iScroll版本,请使用iScroll 4

哦,是的,在检查出AnonyMouse之后,我建议不要使用position: fixed;,因为只有iOS 5支持它。

答案 2 :(得分:0)

据我所知,你必须使用preventDefault()完全阻止IOS上的默认页面滚动,然后模仿没有反弹的行为。如上所述,iscroll执行此操作,但当您将其与其他库(例如Zynga Scroller

进行比较时,它会有点膨胀和繁琐

你也可以尝试建立自己的乐趣:

http://www.html5rocks.com/en/mobile/optimization-and-performance/