有很多片段可以阻止 iPad 上的橡皮筋,如下所示:
document.body.addEventListener('touchmove',function(event){ event.preventDefault(); },false);
但是,这是否会阻止所有溢出的 div 也滚动?
有没有办法只用橡皮筋将页面(正文)放在顶部,同时仍然允许溢出滚动的 div 这样做?
有很多片段可以阻止 iPad 上的橡皮筋,如下所示:
document.body.addEventListener('touchmove',function(event){ event.preventDefault(); },false);
但是,这是否会阻止所有溢出的 div 也滚动?
有没有办法只用橡皮筋将页面(正文)放在顶部,同时仍然允许溢出滚动的 div 这样做?
当用户从 div 的最底部或最顶部滚动时,似乎会出现整个页面的橡皮筋。我编写的代码检查用户是否确实处于这些极端之一,如果是,则阻止滚动动作在这些方向上发生。
elem.bind("touchstart", function( e )
{
xStart = e.originalEvent.changedTouches[0].screenX;
yStart = e.originalEvent.changedTouches[0].screenY;
});
elem.bind("touchmove", function( e )
{
var xMovement = e.originalEvent.changedTouches[0].screenX - xStart;
var yMovement = e.originalEvent.changedTouches[0].screenY - yStart;
if( elem.scrollTop() == (elem[0].scrollHeight - elem[0].clientHeight) && yMovement < 0 )
{
e.preventDefault();
}
else if( elem.scrollTop() == 0 && yMovement > 0 )
{
e.preventDefault();
}
e.stopPropagation();
});
更新:包括工作 jsfiddle 演示链接:http: //jsfiddle.net/qQHrM/1/