2013-05-27 95 views
0

我创建了一个响应站点,用户可以将书签添加到其主屏幕。在平板电脑和手机上,如果用户滚动到页面顶部或页面底部时,屏幕不会执行此操作,如果您滚动得太远或太远,就会看到一点在页面后面变成灰色,并且快速恢复。preventDefault阻止滚动

我知道在body上使用'preventDefault'会发生这种情况,但现在这样做可以防止用户滚动。

这里是JavaScript:

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

下面是HTML调用:

<body ontouchmove="touchMove(event)"> 

回答

0

我建议你捕捉eventand只调用了preventDefault是它是在一定的视/ scrollTop的位置。 (将尽快添加代码)。

这会帮助你获得当前文档的滚动顶部位置

function getScrollTop(){ 
    if(typeof pageYOffset!= 'undefined'){ 
     //most browsers 
     return pageYOffset; 
    } 
    else{ 
     var B= document.body; //IE 'quirks' 
     var D= document.documentElement; //IE with doctype 
     D= (D.clientHeight)? D: B; 
     return D.scrollTop; 
    } 
} 

然后调用了preventDefault只有scrollTop的是在顶部...

$(document).ready(function(){ 
     document.ontouchmove = function(e){ if (getScrollTop() != document.scrollTop)  
      { 
      e.preventDefault(); 
      } 
    } 
}); 
+0

我甩了你的代码到我的javascript文件,但没有机会真正了解它为什么不起作用。我会看看我明天是否可以开始工作。感谢您花时间写它。 – michelle