问题记录解决滑动冲突问题 - 监听滑动事件,阻止滑动事件冒泡

Posted 黑子Kuroko

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了问题记录解决滑动冲突问题 - 监听滑动事件,阻止滑动事件冒泡相关的知识,希望对你有一定的参考价值。

业务场景:

父容器是一个支持左右滑动切换的Tab页,子组件是一个支持左右滚动的div内容展示。当左右滑动子组件内容时,会同时触发Tab滑动切换,与预期不符。

解决方案:

如果是vue框架的话,可以在该子组件节点上加一个监听属性即可:@touchend.stop

解决思路很简单,就是监听对应元素element的滑动事件禁止向上冒泡即可。

<div class="demo" @touchend.stop>
  <!-- 滑动内容 -->
</div>

如果是其他框架的话,在了解实现原理之后,可以尝试以下代码:

const targetElement = document.getElementById('targetElement');
targetElement.addEventListener('touchmove', function (e) 
  // 查看事件对象
  // console.log(e);
  // 阻止默认事件
  // e.preventDefault();
  // 阻止冒泡事件
  e.stopPropagation();
);

参考&学习:

怎么阻止touchstart touchend事件冒泡 - SegmentFault 思否

事件处理 | Vue.js

event.preventDefault - Web API 接口参考 | MDN

事件参考 | MDN

以上是关于问题记录解决滑动冲突问题 - 监听滑动事件,阻止滑动事件冒泡的主要内容,如果未能解决你的问题,请参考以下文章

问题记录解决滑动冲突问题 - 监听滑动事件,阻止滑动事件冒泡

问题记录解决滑动冲突问题 - 监听滑动事件,阻止滑动事件冒泡

Android 中 DrawerLayout + ViewPager 怎么解决滑动冲突

UIScrollView 嵌套UITableView 左滑删除和UIScrollView滑动冲突

UIScrollView 滑动手势与右滑返回冲突

Android点击事件和滑动冲突解决