触摸拖动画布时滚动页面
Scroll the page when a canvas is touch dragged
我有一个HTML5画布,用户通过单击(或点击)与之交互。
$(function() {
var canvas = $('#annotations');
canvas[0].addEventListener('mousedown', clickCanvas);
canvas[0].addEventListener('touchstart', clickCanvas);
});
function clickCanvas(e) {
markLocation(e);
drawCanvas();
e.preventDefault();
}
这按预期工作。但是,在移动设备上,如果您点击并拖动,则会在点击开始的地方注册一次点击(这是有道理的,因为它连接到touchstart
)。当您触摸并拖动到画布外部时,页面不会像往常那样滚动。
拖动时,我希望忽略点击并滚动整个页面。
我能够通过以下方式解决此问题:
- 删除
e.preventDefault();
- 连接
canvas[0].onselectstart = function () { return false; }
以防止双击画布时选择文本(这是e.preventDefault()
首先所做的) - 将
touchstart
替换为touchend
相关文章:
- 只在滚动时播放循环css动画-滚动停止时停止
- 滚动定位时隐藏标题
- 取消选择滚动启动时的所有列表视图项目
- 当用户已经向下滚动页面时,我如何导航到锚标记
- Sammy.js缓存和滚动位置时,返回历史
- 滚动页面时的弯曲图像路径
- 滚动容器时,元素的拖动出错
- 向下滚动页面时在侧边栏中显示部分标题(也许使用 BS scrollspy?
- 导航栏固定底部位置,当到达滚动位置时切换到静态
- 如何“;“修复”;显示滚动条时的容器元素高度
- 页脚在滚动底部时没有设置高度动画
- 单击滚动条时禁用Jquery功能
- JQuery UI 自动完成在滚动菜单时在文本框中显示 [对象对象]
- 如何在用户滚动页面时缓慢移动标题
- 滚动时加载更多 滚动速度时一次工作两次
- 使用鼠标滚轮滚动元素时传播的事件是什么
- 滚动事件仅在滚动顶部时触发
- 在屏幕顶部附近滚动元素时触发的侦听器
- 当目标处于顶部滚动状态时,如何从菜单中激活项目
- 如何在向下滚动页面时切换固定元素