Skip to content

fix: corrected horizontal slip judgment - #8387

Merged
chenjiahan merged 4 commits into
youzan:2.xfrom
Dante-dan:2.x
Mar 23, 2021
Merged

chenjiahan merged 4 commits into
youzan:2.xfrom
Dante-dan:2.x

Conversation

@Dante-dan

@Dante-dan Dante-dan commented Mar 22, 2021 •

Copy link
Copy Markdown
Contributor

Closes #8386

修复在 ios safari 中「手势返回」误触「右滑操作」的 bug

@github-actions

github-actions Bot commented Mar 22, 2021 •

Copy link
Copy Markdown

🎊 PR Preview bd4eaf9 has been successfully built and deployed to https://youzan-vant-preview-pr-8387.surge.sh

🕐 Build time: 82.111s

🤖 By surge-preview

@Dante-dan

Copy link
Copy Markdown
Contributor Author

哎呀,忘了跑用例了。晚点看看

@chenjiahan

Copy link
Copy Markdown
Member

实现上没问题,用例可以再跑一下~

@Dante-dan

Copy link
Copy Markdown
Contributor Author

screenX 感觉会更合适一些。它是触摸位置相对于屏幕的 x轴 坐标,正常情况下不会是负值。

只有触发到 Safari 的后退事件的时候才能出现。

@chenjiahan

Copy link
Copy Markdown
Member

screenX 这个值不是很常用,从语义上来说,是 clientX 更加合理的

@Dante-dan

Copy link
Copy Markdown
Contributor Author

看了一下关于 pageX , clientX 的定义。
pageX
clientX

pageX 是相对于文档左边沿的位置,当存在水平滚动的偏移时, 这个值包含了水平滚动的偏移。
clientX 是相对于视区的左边沿位置,并且不包括滚动。


看了一下用例没跑过的地方,都触发了 triggerDrag(el, -xxx,0) ,看起来是模拟了 touchMove. 例如:swipe-cell

看到模拟事件触发 的代码,是直接将事件参数 -50 赋给 clientX 的。那么在真实的操作,是如何触发到可视区域的 -50px 的呢 ?

这个用例的初衷是啥?

@chenjiahan

Copy link
Copy Markdown
Member

这里 triggerDrag -50 的用例确实是不对的,可以顺便修正下~

@Dante-dan

Dante-dan commented Mar 23, 2021 •

Copy link
Copy Markdown
Contributor Author

我理解 triggerDrag 入参为相对于原点的坐标。真实的坐标需要做一个简单的转换。

相对坐标大于 0 时,从 0-> X
相对坐标小于 0 时,从 X -> 0

@chenjiahan

Copy link
Copy Markdown
Member

👍👍👍

@chenjiahan
chenjiahan merged commit bd4eaf9 into youzan:2.x Mar 23, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants