怎么在ng4中阻止触摸事件的冒泡or渗透?

发布于 2022-09-06 12:25:31 字数 635 浏览 15 评论 0

我用ng4写了一个触摸滑动组件,部分代码如下:

let touchstart = Observable.fromEvent(this.el.nativeElement,'touchstart')
let touchmove = Observable.fromEvent(this.el.nativeElement, 'touchmove')
let touchend = Observable.fromEvent(this.el.nativeElement, 'touchend')

touchstart.map((start:any) => {
  return new Position(start.touches[0].pageX, start.touches[0].pageY)
}).subscribe(start => {
  this.duration = 0;
  this.touchObject.start = start
  transObject.start = new Position(this.trans.x, this.trans.y)
});

......

这个组件是fixed在最上层的,他响应触摸滑动的时候,它下面的内容也会跟着一起滑动,有什么办法能够只让它自己滑动呢?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

绮筵 2022-09-13 12:25:31

没试过。试试Observable加个filter

let touchstart = Observable.fromEvent(this.el.nativeElement,'touchstart').pipe(
    filter((evt:any) => evt.target == this.el.nativeElement)
)

或者加个tap中阻止冒泡试试。

let touchstart = Observable.fromEvent(this.el.nativeElement,'touchstart').pipe(
    tap((evt:any) => evt.stopPropagation())
)

Rxjs 5+

弥枳 2022-09-13 12:25:31

不知道你说的这个组件和下面的内容是不是在一个组件里面, 如果在一个组件里面的话,
只需要监听具体的元素就可以了。

let upperElement = this.el.nativeElement.querySelector("upperElement");
let touchstart = Observable.fromEvent(upperElement,'touchstart');
let touchmove = Observable.fromEvent(upperElement, 'touchmove');
let touchend = Observable.fromEvent(upperElement, 'touchend');
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文