【转】CSS3 超实用属性:pointer-events

最近发现了一个叫pointer-events的css属性,是一个与javascript有关的属性,pointer-events直译为指针事件,当把值设置为none后,他有如下相关特性。

  1. 阻止用户的点击动作产生任何效果
  2. 阻止缺省鼠标指针的显示
  3. 阻止CSS里的hover和active状态的变化触发事件
  4. 阻止JavaScript点击动作触发的事件

一条CSS可以做许多事情是不是很神奇,我们在看一下兼容性情况如何。
IE  11+
Firefox  3.6+
Chrome 4.0+
Safari  6.0
Opera  15.0
iOS Safari 6.0
Android Browser 2.1+
Android Chrome 18.0+

看下实例,具体是怎么回事。html代码:

<!DOCTYPE html>
<html>
<head>
</head>
<body>
<ul>
    <li><a href="https://www.baidu.com/">百度</a></li>
    <li><a href="http://example.com">一个不能点击的链接</a></li>
</ul>
</body>
</html>

CSS代码:

<style>
  a[href="http://example.com"] {
      pointer-events: none;
  }
</style>

第二个a标签不仅无法被点击,而且没有鼠标手形样式。

 

再看一个例子。

html代码:

<!DOCTYPE html>
<html>
<head>
</head>
<body>
    <!-- 下方div -->
    <div class="bottom">
        <a href="www.baidu.com">bottom-百度</a>
    </div>
    <!-- 上方div -->
    <div class="top"></div>
</body>
</html>

CSS代码:

<style>
.bottom {
    background: yellow;
    width: 100px;
    height: 100px;
}
.top {
    width: 100px;
    height: 100px;
    position: absolute;
    top: 0;
    left: 0;
}
</style>

此时由于top的div位于a标签之上,无法点击到a标签。

如果我们给上方的top层加上一个pointer-events属性后:

.top {
  pointer-events: none;
}

我们就可以穿过top层去点击下面的a标签了,此时这个top层如果有颜色的话相当于可看不可摸了(可念不可说哈哈)。

为什么说这个属性非常的实用呢,在许多网站上过节的时候页面最上层会用canvas绘制的雨、雪花,避免这些悬浮物遮挡住页面从而影响鼠标点击,可以使用pointer-events=none属性,让这些上方的canvas不会遮挡鼠标事件,让鼠标事件可以穿透上方的canvas来点击页面。怎么样是不是很不错,赶紧写个demo来试试。



作者:Rin阳
链接:https://www.jianshu.com/p/3eba945fc19e
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

 

转载于:https://my.oschina.net/u/943746/blog/1829422

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值