为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕哥6287543 2019-05-23 16:30:58
我用ng4写了一个触摸滑动组件,部分代码如下:lettouchstart=Observable.fromEvent(this.el.nativeElement,'touchstart')lettouchmove=Observable.fromEvent(this.el.nativeElement,'touchmove')lettouchend=Observable.fromEvent(this.el.nativeElement,'touchend')touchstart.map((start:any)=>{returnnewPosition(start.touches[0].pageX,start.touches[0].pageY)}).subscribe(start=>{this.duration=0;this.touchObject.start=starttransObject.start=newPosition(this.trans.x,this.trans.y)});......这个组件是fixed在最上层的,他响应触摸滑动的时候,它下面的内容也会跟着一起滑动,有什么办法能够只让它自己滑动呢?
查看完整描述

2 回答

?
叮当猫咪

TA贡献1776条经验 获得超12个赞

没试过。试试Observable加个filter
lettouchstart=Observable.fromEvent(this.el.nativeElement,'touchstart').pipe(
filter((evt:any)=>evt.target==this.el.nativeElement)
)
或者加个tap中阻止冒泡试试。
lettouchstart=Observable.fromEvent(this.el.nativeElement,'touchstart').pipe(
tap((evt:any)=>evt.stopPropagation())
)
Rxjs5+
                            
查看完整回答
反对 回复 2019-05-23
?
三国纷争

TA贡献1804条经验 获得超7个赞

不知道你说的这个组件和下面的内容是不是在一个组件里面,如果在一个组件里面的话,只需要监听具体的元素就可以了。
letupperElement=this.el.nativeElement.querySelector("upperElement");
lettouchstart=Observable.fromEvent(upperElement,'touchstart');
lettouchmove=Observable.fromEvent(upperElement,'touchmove');
lettouchend=Observable.fromEvent(upperElement,'touchend');
                            
查看完整回答
反对 回复 2019-05-23
  • 2 回答
  • 0 关注
  • 475 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号