我们可以使元素(div)对鼠标事件透明吗? [复制]

Posted

技术标签:

【中文标题】我们可以使元素(div)对鼠标事件透明吗? [复制]【英文标题】:Can we make an element (div) transparent to mouse events? [duplicate] 【发布时间】:2014-11-23 12:29:21 【问题描述】:

我想让一个元素对事件透明。如果我点击它,它后面的元素就会触发该事件。

【问题讨论】:

the element just behind to it.. 是什么意思。那个元素是怎么放在它后面的? 【参考方案1】:

使用pointer-events CSS 属性:

myElement 
    pointer-events: none;

注意浏览器兼容性:http://caniuse.com/#feat=pointer-events

【讨论】:

它会在 IE 中工作吗? @user1598937 仅在最新版本的 IE 中 旧版 IE 有一个 polyfill:github.com/kmewhort/pointer_events_polyfill【参考方案2】:

是的。在上面的元素上设置pointer-events:none;

这是一个简单的例子:当我点击图片时,选择元素打开:

div 
    width: 14px;
    height: 14px;
    position:relative;
    top: -18px;
    left: 58px;
    pointer-events: none;
    background: url(http://lorempixel.com/14/14) no-repeat;
<select>
  <option value="value1">Value 1</option> 
  <option value="value2" selected>Value 2</option>
</select>
<div></div>

浏览器支持很好 (caniuse):除了 IE - 它仅在 IE11 中受支持

【讨论】:

【参考方案3】:

或者,如果您想使用 jQuery-Way(因为逻辑应该脱离 CSS),您可以使用 $( "#foo").unbind( "click" );

您可以在此处找到更多信息:

http://api.jquery.com/unbind/

【讨论】:

以上是关于我们可以使元素(div)对鼠标事件透明吗? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

学会一行CSS即可提升页面滚动性能

我必须从已删除的元素中分离事件吗? [复制]

在另一个 DOM 元素上调度鼠标滚轮事件

文本上的透明 div

为事件jQuery选择特定的新附加节点副本

更高z-index覆盖的元素上的悬停事件?