低 z-index 元素的 Onclick 用法

发布于 2024-09-24 20:49:26 字数 1022 浏览 5 评论 0 原文

这是我的问题——我需要以某种方式访问​​被另一个更高 z-index 元素覆盖的项目的 onclick。我知道这违背了 z-index 的观点,但是有什么想法吗?

在下面的示例中,只有红色框顶部的小条子是可单击的。我有一个网页设计,其中需要可点击的选项卡被艺术栏覆盖...我很高兴是否有一种方法(也许是一些 javascript 技巧?)对这些模糊的、较低的 z-index 元素使用 onclick ,而无需改变任何定位,尽管我的直觉不太好。

<html>
<head>
    <style type="text/css">

        #bg {
            position:absolute;
            width:500px;
            height:500px;
            background:pink;
        }
        #under {
            cursor:pointer;
            margin-top:-10px;
            background:red;
            width:50px;
            height:50px;
            z-index:0;
        }
        #over {
            position:absolute;
            width:900px;
            height:50px;
            margin-top:10px;
            z-index:100;
        }
    </style>
</head>
<body>
    <div id="bg">
        <div id="under" onclick="alert('hi');">aaa</div>
    </div>
    <div id="over"></div>
</body>

Here is my issue--I need to somehow access the onclick of an item that is covered by another element of higher z-index. I know this is going against the point of z-index, but any ideas?

In the below example, only the small top-sliver of the red box is clickable. I have a webpage design where tabs that need to be clickable are overlaid by an artsy bar... I'd love if there were a way (maybe some javascript trick?) to use onclick for these obscured, lower z-index elements without changing any positioning, though my gut feeling isn't good.

<html>
<head>
    <style type="text/css">

        #bg {
            position:absolute;
            width:500px;
            height:500px;
            background:pink;
        }
        #under {
            cursor:pointer;
            margin-top:-10px;
            background:red;
            width:50px;
            height:50px;
            z-index:0;
        }
        #over {
            position:absolute;
            width:900px;
            height:50px;
            margin-top:10px;
            z-index:100;
        }
    </style>
</head>
<body>
    <div id="bg">
        <div id="under" onclick="alert('hi');">aaa</div>
    </div>
    <div id="over"></div>
</body>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

北陌 2024-10-01 20:49:26

我会在艺术栏上方的 DIV 内使用透明的 PNG 来实现,其尺寸与可点击的最低 z-index DIV 相同。

请注意 Internet Explorer 问题。

我多次使用该技术。

I would do it with a transparent PNG inside a DIV above the artsy bar with the same dimensions as your clickable lowest z-index DIV.

Be aware of Internet Explorer Issues.

I used the technique many times.

喜爱纠缠 2024-10-01 20:49:26

通常的替换方法是将“上方”元素(绝对定位)放置在“下方”元素(相对或绝对定位)内,并使内容大小相同(Gilder/Levin 图像替换)。

The usual replacement method is to place the "over" elements (positioned absolutely) inside the "under" elements (positioned either relatively or absolutely) and make the content the same size (Gilder/Levin Image Replacement).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文