冒泡 默认 捕获 蒙版 禁止滚动

参考:https://www.jianshu.com/p/2b4a8a6507f1


<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>

<body>
    <script>
        //添加禁止屏幕滚动
        //addEventListener 委托事件 (事件, 函数名,false/冒泡|true/捕获) 默认是false 捕获
        document.body.addEventListener('touchmove', stopScroll, false);

        //移除禁止滚动事件监听

        document.body.removeEventListener('touchmove', stopScroll, false);

        //禁止默认行为方法

        function stopScroll(e) {
            // 默认行为
            e.preventDefault()
            // 冒泡
            e.stopPropagation()

        }

    </script>
</body>

</html>

捕获 是指从根节点 传递到目标阶段(Target Phase) 可以 用于事件委托 addEventListener(‘click’,(e)=>{

},false) 可以节约性能 在节点外面

目标阶段(Target Phase)

冒泡 目标阶段(Target Phase)传递到 根目录 指像气泡一样 向上传递

vue 处理冒泡 默认事件

//  vue解决方案
 <div @touchmove.stop.prevent></div>

<div @click.stop=''>冒泡</div>

<div @click.prevent="">默认事件</div>
// 换行
// white-space : pre/nowrap/pre-wrap /pre-line/
// innerHTML模板

蒙版 处理滑动 处理

1.在根元上 加高度 overflow:hidden
2.滚动事件 @Scroll= e.target.scrollTop=0
3.在蒙版上 禁止 click scroll touchmove 三个事件

@click.stop.prevent="stop($event)" @touchmove.stop.prevent="" @scroll.stop.prevent=""

  stop(e) {
      e.stopPropagation();
      e.preventDefault();
      return false;
    },

// pc 禁止滚动

// css
 html,body{
    height:100%
    }
// js
document.body.style.overflowY='hedden'
document.body.style.overflowY='auto'

---------------------------------
  document.body.addEventListener('touchmove', stopScroll, false);
  //移除禁止滚动事件监听
  document.body.removeEventListener('touchmove', stopScroll, false);
  //禁止默认行为方法
  function stopScroll(e) {
     // 默认行为
   e.preventDefault()
     // 冒泡
   e.stopPropagation()
        }

// h5 禁止滚动

 <div @touchmove.stop.prevent></div>

<div @click.stop=''>冒泡</div>

<div @click.prevent="">默认事件</div>
//--------------------------------------------
 html,body{
    height:100%
    }
// js
document.body.style.overflowY='hedden'
document.body.style.overflowY='auto'

---------------------------------
  document.body.addEventListener('touchmove', stopScroll, false);
  //移除禁止滚动事件监听
  document.body.removeEventListener('touchmove', stopScroll, false);
  //禁止默认行为方法
  function stopScroll(e) {
     // 默认行为
   e.preventDefault()
     // 冒泡
   e.stopPropagation()
        }

pc /h5 滚动置顶

document.documentElement.scrollTop = 0

window.scrollTo( 0, 1000 );  // x 轴  y轴

网页可见区域宽:document.body.clientWidth 
网页可见区域高:document.body.clientHeight 
网页可见区域宽:document.body.offsetWidth (包括边线的宽) 
网页可见区域高:document.body.offsetHeight (包括边线的宽) 
网页正文全文宽:document.body.scrollWidth 
网页正文全文高:document.body.scrollHeight 
网页被卷去的高:document.body.scrollTop 
网页被卷去的左:document.body.scrollLeft 
网页正文部分上:window.screenTop 
网页正文部分左:window.screenLeft 
屏幕分辨率的高:window.screen.height 
屏幕分辨率的宽:window.screen.width 
屏幕可用工作区高度:window.screen.availHeight 
屏幕可用工作区宽度:window.screen.availWidth
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

web修理工

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值