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

fix(component): 解决 preventDefault 引起的页面无法滚动的问题 #14987

Merged
merged 4 commits into from
Mar 14, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,8 @@
* 超过可移动区域后,是否还可以移动
*/
@Prop() outOfBounds: boolean = false
/**
* 是否带有惯性
/**
* 是否带有惯性
*/
@Prop() inertia: boolean = false
/**
Expand Down Expand Up @@ -404,7 +404,10 @@
if (this.disabled || !this.element || this.scaling || !this.touching || touches.length > 1) {
return
}
e.preventDefault()
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

这应该就是 movable 组件的特性?小程序上体验会和这个有区别么?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

直接去掉应该会有些问题,在moveable设置为垂直或全向滑动的时候,与外部的垂直滚动也会有冲突;如果判断出仅在内外部进行同方向滚动时,再禁止事件冒泡是否可以

Copy link
Member Author

@robinv8 robinv8 Dec 19, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

这样是否可行

if (direction !== "horizontal") {
    e.preventDefault()
}

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

没太看懂,是不是这个意思
if (("水平滑动开启" && "水平方向发生移动") || ("垂直滑动开启" && "垂直方向发生移动")) {
e.preventDefault()
}

Copy link
Member Author

@robinv8 robinv8 Dec 22, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@baosiqing 不好意思,手误了,已更正。常规情况下垂直滑动存在冲突的情况,我只期望当 direction = horizontal 时,跳过 e.preventDefault() 允许冒泡


if (this.direction !== "horizontal") {
e.preventDefault()

Check warning on line 409 in packages/taro-components/src/components/movable-area/movable-view.tsx

View check run for this annotation

Codecov / codecov/patch

packages/taro-components/src/components/movable-area/movable-view.tsx#L409

Added line #L409 was not covered by tests
}

const touch = touches[0]

Expand Down
Loading