css3之pointer-events

5 篇文章 0 订阅

在日常写代码的过程中我们可能遇到类似这样的一种需求,就是要求点击某个按钮后禁用整个页面,即整个页面的点击事件失效,或者要求局部点击事件失效,这时我们就可以使用css3的pointer-events属性了。

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <style>
      ul{
        float: left;
        border: 1px solid red;
      }
      ul li{
        cursor: pointer;
      }
      p{
        float: left;
        border: 1px solid yellow;
      }
    </style>
  </head>
  <body>
    <ul>
      <li onclick="show('菜单一');">菜单一</li>
      <li onclick="show('菜单二');">菜单二</li>
      <li onclick="show('菜单三');">菜单三</li>
      <li onclick="show('菜单四');">菜单四</li>
      <li onclick="show('菜单五');">菜单五</li>
    </ul>
    <p>
      点击菜单一、菜单二、菜单四和菜单五时都正常,但点击菜单三时除了P区域中的的代码可以成为鼠标事件的target,其它区域都无法点击.....
    </p>
  </body>
  <script type="text/javascript" src="jquery-3.0.0.min.js"></script>
  <script type="text/javascript">
    function show(value){
        $("p").html(value+":<input value='"+value+"' />");
      if (value == "菜单三"){
        $("body").css("pointer-events", "none");  //元素永远不会成为鼠标事件的target。
        $("p").css("pointer-events", "auto"); //鼠标事件可以指向后代元素
      }
    }
  </script>
</html>

运行以上代码你会看到预期效果!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值