【问题标题】:Z-index prevents item to get clickedZ-index 防止项目被点击
【发布时间】:2015-09-06 09:44:38
【问题描述】:

我有一个带有嵌入阴影的容器 div,我在这个容器内也有子元素,我只是希望这些子元素是可点击的。

将子元素(我项目中的图像,不确定是否重要)元素的 z-index 设置为 -1 对于显示投影至关重要。但是这样做容器会覆盖子元素,所以单击不起作用。

设置指针事件:无;在容器元素上也没有帮助(我也希望容器是可滚动的)。

$('.item').on('click', function() {
  alert($(this).attr('id'));
});
    .container {
      position: absolute;
      width: 250px;
      height: 250px;
      border-radius: 50%;
      box-shadow: inset 0 0 10px black;
      overflow-y: scroll;
      overflow-x: hidden;
    }
    .item {
      width: 250px;
      height: 80px;
      margin: 3px 0;
      background-color: #cacaca;
      position: relative;
      text-align: center;
      z-index: -1;
      /*Shadow visible, JS doesn't work*/
      /*z-index: 0;*/
      /*Clickable, but shadow is covered */
    }
<div class="container">
  <div class="item" id="item1">
    <p>CLICK</p>
  </div>
  <div class="item" id="item2">
    <p>CLICK</p>
  </div>
  <div class="item" id="item3">
    <p>CLICK</p>
  </div>
  <div class="item" id="item1">
    <p>CLICK</p>
  </div>
</div>

JSFiddle

如何保持阴影,并使子元素可点击?

【问题讨论】:

    标签: jquery css z-index dropshadow


    【解决方案1】:

    为什么会发生

    发生这种情况的原因是 .item 类的 div 在 .container 后面,这意味着用户实际上是在点击 .container,而不是 .item

    解决方案

    你可以用这样的包装器来包装你的 div:

    <div class="container">
        <div class="item" id="item1">
            <div><p>CLICK</p></div>
        </div>
    
        <div class="item" id="item2">
            <div><p>CLICK</p></div>
        </div>    
    
        <div class="item" id="item2">
            <div><p>CLICK</p></div>
        </div>
    
        <div class="item" id="item3">
            <div><p>CLICK</p></div>
        </div>
    </div>
    

    并将您的 CSS 从 .item 更新为 .item &gt; div [但保留 JS 原样]

    这样,外部的.item 仍然在.container 的前面,内部的div 在.container 的后面,这意味着它仍然是可点击的,并且您可以获得所需的样式!

    证明它有效!

    检查以下JS Fiddle:https://jsfiddle.net/anik786/5oe841sw/6/

    截图如下:

    【讨论】:

    • 谢谢,但这并没有解决问题。单击 .item 元素仍然不起作用。
    • 检查我的 JS Fiddle。您可能看过一个旧链接。我编辑了这个问题,它工作正常!
    • 是的,我查看了一个旧链接。很好用,谢谢。
    猜你喜欢
    • 1970-01-01
    • 2020-07-03
    • 2010-12-25
    • 1970-01-01
    • 2016-10-13
    • 2012-11-27
    • 1970-01-01
    • 2015-03-20
    • 1970-01-01
    相关资源
    最近更新 更多