javascript - 防止应用程序拖动但允许在 ios 中滚动内部 div 元素

标签 javascript html css ios cordova

我有一个网络应用程序,我正在使用 Phonegap 使其适应 iOS5。除了一个问题,一切正常:

我的内心<div> s,如果在 Chrome 中溢出则设置为滚动,如果在 Chrome 中溢出则设置为完美滚动在 iPad 上根本不滚动。

--我通过禁用 touchmove 禁用了应用程序拖动; --我已经实现了(也许不正确?)-webkit-overflow-scrolling:touch CSS 属性,这显然是 iOS5 的新属性,如下所示:

溢出:滚动; -webkit-overflow-scrolling:touch;

似乎没有任何效果。

如果我注释掉禁用应用程序拖动(即 touchmove)的 javascript(来自 Phonegap),则滚动有效,但它会拖动并滚动整个应用程序。

如有任何帮助,我们将不胜感激。

最佳答案

这更像是一种 hack,但您可以做一些检查以查看您是否正在触摸 div,并根据这一点,您可以像这样防止滚动:

document.body.addEventListener('touchmove', function (e){
    if(document.elementFromPoint(e.pageX, e.pageY) !== document.getElementById('yourdiv'){
        e.preventDefault();
    }
}, false);

MDN reference

关于javascript - 防止应用程序拖动但允许在 ios 中滚动内部 div 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8292326/

相关文章:

javascript - Google Sheets 可以成为数据库服务吗?

JavaScript 似乎只运行了前几行?

css - 保持多个图像在 Bootstrap 中居中

css - 为什么浏览器要为 CSS 属性创建供应商前缀?

javascript - 如何通过使用 jQuery 在子项中搜索内容来隐藏父项

javascript - find 方法如何与数组一起使用?

javascript - 什么时候在 JavaScript 中触发内联事件?

css - 选择 Safari Windows 上缺少的箭头

javascript - 将字符串拆分为不同的变量问题

html - 使用 CSS 创建具有动态高度和向内箭头的 div