Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

关于实现常用手势事件提案的讨论 #240

Open
answershuto opened this issue Feb 5, 2021 · 4 comments
Open

关于实现常用手势事件提案的讨论 #240

answershuto opened this issue Feb 5, 2021 · 4 comments

Comments

@answershuto
Copy link
Member

Hi All,

这个 Issue 抛出一个关于手势的提案,我希望能够在 Web 中文兴趣组内先进行一些讨论,收集意见和建议,最终目标是能够贡献此标准。

需要注意的是这个文档目前还只是一个"提议",还不算是比较完整的提案。

提案的目的是解决 Web 标准下集成常用的手势能力,客户端开发中有各种原生自带的如 Pan、Long Press 、Drag 等在 touch 之上封装的常用的基础手势能力,这使开发者可以更方便地直接使用这些手势能力,去快速开发一些交互更复杂的页面。提案期望在 element 上做进一步的扩展,开发者可以直接在 element 之上绑定监听相关的手势事件,并在回调中抛出相关 event 参数。

增加手势能力

  • swipe
  • pan
  • long press
  • Scale

event 扩展

提案期望推进GestureEvent,并在其之上做进一步扩展,以满足手势事件的基本参数能力的透出。

  • state: 连续手势的一些状态,down、move、up。
  • deltaX: X轴移动距离。
  • deltaY:Y轴移动距离。
  • pageX: 相对于X轴移动距离。
  • pageY: 相对于Y轴移动距离。
  • direction: 方向。
  • velocityX:X轴移动速度。
  • velocityY:Y轴移动速度。
  • touches:多点触控判断几指操作等。
  • scale: 放大或缩小的比例。
  • rotation:角度。

一些补充

  • 基于性能考虑,期望在 Web 中直接使用这些手势,而不是通过频繁地传递最终在 JS 层劫持 Touch 事件实现相关手势能力。
  • 基于易用性考虑,期望在 Web 中直接提供相关的手势事件,方便开发者直接使用 element 之上封装的手势能力。
  • 各个平台以及方案实现的手势能力都有差异性,期望通过统一的标准来使得 Web 平台拥有统一的标准化的手势能力。

我希望讨论的内容

  • 提案的必要性以及推进的可行性
  • 具体实现哪些增强的手势能力
  • event 如何扩展相关参数
  • 提案的描述
  • 关于实现可行性
  • 提案的流程
@xfq
Copy link
Member

xfq commented Feb 25, 2021

染陌你好,这里有一些相关讨论:https://www.w3.org/2018/05/30-gesture-minutes.html

我的理解是这方面涉及到的专利比较多,所以标准化可能会有阻力,不过倒是可以试试往UI Events提提试试,看看收到的反馈如何。

@answershuto
Copy link
Member Author

answershuto commented Mar 1, 2021

富侨你好,该讨论已经提至 UI Event。目前的 WEB 标准对这块能力的缺失。无论从易用性、标准化还是性能方面考量,都是挺有必要的。基于已有W3C能力(Touch Event)做的一些方案,都多多少少带来了许多体验的问题。

@xfq
Copy link
Member

xfq commented Apr 12, 2021

谢谢 @answershuto ,我们看看UI Events那边是否会有反馈。


Just FYI - Pointer Events 工作组明确表示手势事件不在范围之内,不过WebApps工作组(UI Events的工作组)还是有可能做的。

@zhangking
Copy link

缩放这个现在一般用 pinch , 还有旋转 rotate 也有需求。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants