javascript - 阻止 HTML5 Canvas 在 Phonegap App 中的触摸/滑动事件上滚动整个页面?
问题描述
在我的 phonegap 应用程序中,我在长长的文本页面末尾有一个使用画布的签名框,无论设备 iPhone 或 iPad 或方向如何,它都会垂直滚动。页面只是比视口要高。
问题在于,当用户尝试在画布上使用手指而不是在画布上进行签名时,由于触摸滚动,当他们上下移动时,整个页面都会滚动。
我怎样才能避免这种情况?这是我到目前为止所做的。(注意画布宽度是根据视口动态分配的)
HTML:
<div id="canvas-container">
<canvas id="paintCanvas" width="600" height="158"></canvas>
</div>
Javascript/JQuery:
var mycanvas = $("#paintCanvas");
mycanvas.addEventListener("touchstart", function(event) {event.preventDefault()})
mycanvas.addEventListener("touchmove", function(event) {event.preventDefault()})
mycanvas.addEventListener("touchend", function(event) {event.preventDefault()})
mycanvas.addEventListener("touchcancel", function(event) {event.preventDefault()})
我在 iOS 和 Android 上遇到了类似的行为。我是否需要像 swipeUp 一样捕捉另一个事件?我认为 touchstart 和 touchmove 将是我所需要的。有什么建议么?
解决方案
回答我自己的问题 - 我放弃了这种方法,而是将基于画布的签名框放入由“添加签名”按钮触发的静态(不滚动)模式对话框中。这是一个 hack,但它为最终用户提供了一个签名框,当他们尝试用手指签名时,该签名框不会移动。
推荐阅读
- elasticsearch - 按域从 ElasticSearch 中获得 10 个最佳结果
- firebase - 我可以将 ImageMagick 7.0 与 Firebase 功能一起使用吗?
- c++ - 如何为 Boost.Hana 结构实现相等比较运算符?
- c# - NPOI Mapper可以设置行号吗
- python - 使用 python 的无服务器框架不导入自定义模块
- c++ - 错误说“相机未定义”,但我确实定义了它
- json - 无法在 CloudFormation 中验证以下目标配置
- python - 为什么我们的“!top10”命令不能正确显示用户?
- c - 我想使用 C shell 代码使缓冲区溢出并执行 bin/sh
- c - C中的加减值