Closed xuzhongpeng closed 1 year ago
cc @answershuto
目前标准里面没有 kind
的定义把。
目前标准里面没有
kind
的定义把。
w3c里确实没有,但是我们在Element中定义一些组件时是需要根据手势的不同有不同的响应。 有两种方案
w3c中定义的主要是给js使用(组件行为已经在浏览器中定义好),但是我们Element中使用是定义组件默认行为的
如果 Element 是 DOM 对象的话,是不需要的,区分是通过监听 mousexxx 或者 touchxxx 事件来区分的。 如果是 Kraken 的 Dart 实现的那个 Element 的话,我理解也不用吧,也可以通过监听鼠标或者手指事件区分吧。
如果 Element 是 DOM 对象的话,是不需要的,区分是通过监听 mousexxx 或者 touchxxx 事件来区分的。 如果是 Kraken 的 Dart 实现的那个 Element 的话,我理解也不用吧,也可以通过监听鼠标或者手指事件区分吧。
click、touch是有的,touchmove这种就无法区分是触摸还是鼠标触发
touch 已经是触摸的封装了,更原子的应该是 Pointer 的概念,这里面可以涵盖设备类型信息,但是透出我建议可以先到 W3C 讨论一下,看看他们的建议。
touch 已经是触摸的封装了,更原子的应该是 Pointer 的概念,这里面可以涵盖设备类型信息,但是透出我建议可以先到 W3C 讨论一下,看看他们的建议。
这里我认为跟W3C标准还不太一样,比如输入框富文本能力在移动端和PC端有些是不一样的,它在浏览器中是浏览器自己实现,对标到Kraken中是DOM Element实现,浏览器自己实现肯定是能知道自己是移动端还是PC端的手势,但是Kraken的Element中使用的addEventListener方法监听的手势就无法获取手势类型
这里addEventListener
在浏览器是仅仅给JS调用的,在Kranken中还会给我们实现一些默认组件使用,这里场景就不一样了。
因为之前有一个规划是做 Dart 侧的标准能力的透出,所以 addEventListener 的表现在 Dart 侧与前端应该是一致的(也就是符合 W3C 标准的),所以还是需要考虑标准中的实现。
因为之前有一个规划是做 Dart 侧的标准能力的透出,所以 addEventListener 的表现在 Dart 侧与前端应该是一致的(也就是符合 W3C 标准的),所以还是需要考虑标准中的实现。
我想实现在Element中实现根据手势不同有不同的交互响应(例子就是输入框的touchmove在移动端上是文字滚动,在pc是文字选中),那目前是无法做到的吗
https://developer.mozilla.org/en-US/docs/Web/API/PointerEvent/pointerType w3c已定义了pointerType
https://developer.mozilla.org/en-US/docs/Web/API/PointerEvent/pointerType w3c已定义了pointerType
但这个是 PointerEvent 的概念,不会影响现有的 MouseEvent/TouchEvent 这些的。
https://developer.mozilla.org/en-US/docs/Web/API/PointerEvent/pointerType w3c已定义了pointerType
但这个是 PointerEvent 的概念,不会影响现有的 MouseEvent/TouchEvent 这些的。
嗯嗯,可以在kraken中对PointerEvent进行支持,对需要判断PointerType的地方使用 pointer相关的事件
https://github.com/openwebf/webf/issues/89 该pr合入此问题不复存在
使用场景 | Use case
目前addEventListener返回的Event参数无法辨别手势类型,比如输入框拖动如果是触摸手势是文字滚动,如果是鼠标手势是选中文本
提案 | Proposal
addEventListener返回的Event的Touch添加一个kind(PointerDeviceKind)属性,告知调用者