在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML5/ 怎么在ng4中阻止觸摸事件的冒泡or滲透?

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

我用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在最上層的,他響應(yīng)觸摸滑動的時候,它下面的內(nèi)容也會跟著一起滑動,有什么辦法能夠只讓它自己滑動呢?

回答
編輯回答
有你在

不知道你說的這個組件和下面的內(nèi)容是不是在一個組件里面, 如果在一個組件里面的話,
只需要監(jiān)聽具體的元素就可以了。

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');
2017年7月9日 09:25
編輯回答
陌顏

沒試過。試試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+

2018年2月28日 13:21