如何防止文档滚动但允许iOS和Android网站上的div元素滚动?

问题描述

终于,我开始工作了。真的很简单:

var $layer = $("#layer");
$layer.bind('touchstart', function (ev) {
    var $this = $(this);
    var layer = $layer.get(0);

    if ($this.scrollTop() === 0) $this.scrollTop(1);
    var scrollTop = layer.scrollTop;
    var scrollHeight = layer.scrollHeight;
    var offsetHeight = layer.offsetHeight;
    var contentHeight = scrollHeight - offsetHeight;
    if (contentHeight == scrollTop) $this.scrollTop(scrollTop-1);
});

解决方法

我使用jQueryMobile为iOS和Android创建了一个网站。

我不希望文档本身滚动。相反,只有一个区域(一个<div>元素)应该是可滚动的(通过css属性overflow-y:scroll)。

所以我通过以下方式禁用了文档滚动:

$(document).bind("touchstart",function(e){
    e.preventDefault();
});

$(document).bind("touchmove",function(e){
    e.preventDefault();
});

但这也将禁用文档中所有其他元素的滚动,无论是否overflow:scroll设置。

我该如何解决?

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...