下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

神奇的css属性pointer-events

作者:课课家教育     来源: http://www.kokojia.com点击数:947发布时间: 2016-11-03 09:28:00

标签: css属性css教程鼠标穿透效果

Web开发

       pointer-events属性是一个神奇的属性,或许你对它比较陌生,不知道它有什么用处。没关系!下面课课家就来为大家展开讲解一下css的pointer-events属性的神奇之处!

  首先,我们看看两个小例子。

  例子一:

神奇的css属性pointer-events_css属性_css教程_鼠标穿透效果

  上图是某购物商城的商品列表页中的商品,在右上角有一个“惊爆价”的图标,大家都知道这是用一个标签在绝对定位上去的,会遮住下面的商品图片,这时如果使用鼠标点击“惊爆价”图片,是不会触发任何事件的,即不会打开商品链接。

  例子二:

滚动的微博记录

  这是微博首页中会不断更新并滚动的微博记录,在最下面,加了一个白色透明渐变的过度条,这次在过度条上可加不了链接,那么当内容滚动这里的时候就无法点击。

  看了以上两个例子,你是否有解决方法。对于例子一,你可能会给“惊爆价”图片也加上链接来解决。但例子二呢?想不到了是吧?

  现在,我们的pointer-events属性就可以隆重登场了。

  pointer-events属性常用的值有两个分别是auto和none。当然它还有其他的值,不过仅限于SVG。

  none——浏览器将会忽略掉鼠标在该元素上的所有鼠标事件(包括CSS和java Script的鼠标事件),如果在该元素的下面还有元素存在,那么会触发下面元素的鼠标事件,即我们常说的鼠标穿透效果。

  auto——效果和没有定义pointer-events属性相同,鼠标不会穿透当前层。在SVG中,该值和visiblePainted的效果相同。

  换而言之,我们通过设置 pointer-events:none就可以把前面所举的两个例子轻松解决了,神奇吧!

  实现代码如下:

  <style>  

  .overlay {  

  pointer-events: none;  

   }  

  </style>  

  <div id="overlay" class="overlay"></div>  

  最后,我们来了解一下pointer-events的注意事项:

  1.子元素可以声明pointer-events来解禁父元素的阻止鼠标事件限制。

  2.如果你对一个元素设置了click事件监听器,然后你移除了pointer-events样式声明,或把它的值改变为auto,监听器会重新生效。基本上,监听器会遵守pointer-events的设定。

  以上就是课课家网站给大家介绍的神奇的css属性pointer-events所有内容。通过本文的学习,如果在实际工作中遇到类似的问题,你会解决了吗?

赞(0)
踩(0)
分享到:
华为认证网络工程师 HCIE直播课视频教程