【发布时间】:2012-08-02 19:15:33
【问题描述】:
我一直在寻找关于这些事件如何运作的明确指南,现在我比开始时更加困惑。
我网站的某些功能涉及拖放。目前,通过让用户选择项目,点击“移动”按钮,然后触摸放置点来支持移动设备(或任何没有鼠标的设备)。虽然这很有效(项目在可见的网格上),但它并不像拖动那样用户友好。
我最初的理解是,无论我分配element.onmousedown、element.onmousemove 和element.onmouseup,我都可以简单地将相同的处理程序分别分配给element.ontouchstart、element.ontouchmove 和element.ontouchend。
但是,这留下了以下问题:
- 如何获取触摸点的坐标,它与什么相关?
- 是否会平移视图(默认的拖动操作)?如果可以,是否可以取消?
- 如果一根手指碰巧在可拖动元素上,如何避免干扰多点触控操作,例如捏合缩放?
【问题讨论】:
-
值得注意的是,移动设备几乎不支持拖放是有充分理由的:它会干扰滚动。因此,如果您确实将自己的 persuado 拖放系统扩展到移动设备,那么请绝对确定在拖动项目的方向上没有滚动条。否则,一个人可能会尝试滚动页面并最终拖动您的一个可拖动对象。反之亦然。
标签: javascript drag-and-drop touch