mobile - 移动 webapp:决定是否在触摸开始后阻止 visualViewport 滚动
问题描述
在移动网页中,我们可以使用以下 css(以每个元素为基础)设置 visualViewport 是否会基于 touch-and-slide 滚动:
.element-receiving-slide-touch {
touch-action: none | manipulation;
}
但是,要使其正常工作,必须在第一个 touchstart 事件发生之前设置它。在 touchstart 事件监听器中设置它只会影响触摸屏释放后的下一个手势。
在我的应用程序中,根据被触摸的点,需要防止滚动,因为会发生另一个动作,这需要保持滚动固定。在 touchstart 发生后,我需要将逻辑冻结或不冻结 visualViewport。
有什么方法可以防止在触摸手势期间滚动到 visualViewport?我已经测试了 preventDefault() 和 stopPropagation(),但没有成功。
关于viewport和visualViewport还是有混淆的,所以有一些链接可以避免对问题的误解:
https://developer.mozilla.org/en-US/docs/Web/API/VisualViewport
https://developers.google.com/web/updates/2017/09/visual-viewport-api
解决方案
推荐阅读
- jqgrid - jqGrid内联编辑中是否可以输入数字类型?
- python - SolverError:未安装求解器 CVXOPT。但是 cp.installed_solvers() 显示它已安装
- python - 在python中使用emd包获取希尔伯特边缘谱
- angular - 角primeng日历UTC时间
- python - 如何使用 Python 将数据行转换为列?
- javascript - 返回过滤器搜索结果不适用于角度
- javascript - Angular - 设置间隔在 for 循环内无法正常工作
- td-engine - 如何在 tdengine 中加入两个 stable
- python - 无法使用熊猫将大数据元组转换为数据框
- javascript - Issue with infite fetch loop using useEffect