CSS/JavaScript:使元素成为最顶层的 z-index/最顶层的模态元素

发布于 2024-10-13 03:42:11 字数 439 浏览 5 评论 0原文

我想让一个元素(例如

)成为页面上的最顶层。

我的假设是,我可以做到这一点的唯一方法是指定元素具有 style="z-index:" 值,该值是浏览器允许的最大值(int32?)。

这是正确的吗?

相反,是否有可能以某种方式获取最高元素的 z-index,并使该

z-index > [最高元素的值] + 1?例如:

$myDiv.css("z-index", $(document.body).highestZIndex() + 1);

模态 JavaScript“窗口”如何工作?

I would like to make an element (e.g. a <div>) be the top-most layer on the page.

My assumption is that the only way I can do this is to specify that the element has a style="z-index:" value that is the maximum the browser allows (int32?).

Is this correct?

Instead, would it be possible to somehow get the element's z-index whose is highest, and make this <div>'s z-index the [highest element's value] + 1? For example:

$myDiv.css("z-index", $(document.body).highestZIndex() + 1);

How do modal JavaScript "windows" work?

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

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

发布评论

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

评论(4

一人独醉 2024-10-20 03:42:12

Sheavi 的 jQuery 解决方案不起作用,因为 z-index 是 css 样式,而不是属性。

请尝试这样做:

raiseToHighestZindex = function(elem) {
    var highest_index = 0;
    $("*").each(function() {
        var cur_zindex= $(this).css("z-index");
        if (cur_zindex > highest_index) {
            highest_index = cur_zindex;
            $(elem).css("z-index", cur_zindex + 1);
        }
    });
    return highest_index;
}; 

由于 Javascript 的异步特性,返回值可能不是您所期望的,但在任何元素上调用该函数都可以正常工作。

Sheavi's jQuery solution doesn't work because z-index is a css style, not an attribute.

Try this instead:

raiseToHighestZindex = function(elem) {
    var highest_index = 0;
    $("*").each(function() {
        var cur_zindex= $(this).css("z-index");
        if (cur_zindex > highest_index) {
            highest_index = cur_zindex;
            $(elem).css("z-index", cur_zindex + 1);
        }
    });
    return highest_index;
}; 

Return value may not be what you expect due to Javascript's async nature, but calling the function on any element will work fine.

一杯敬自由 2024-10-20 03:42:11

操作方法如下:

var elements = document.getElementsByTagName("*");
var highest_index = 0;

for (var i = 0; i < elements.length - 1; i++) {
    if (parseInt(elements[i].style.zIndex) > highest_index) {
        highest_index = parseInt(elements[i].style.zIndex;
    }
}

highest_index 现在包含页面上最高的 z-index...只需向该值添加 1 并将其应用到您想要的任何位置。您可以像这样应用它:

your_element.style.zIndex = highest_index + 1;

这是使用 jQuery 实现相同目标的另一种方法:

var highest_index = 0;

$("[z-index]").each(function() {
    if ($(this).attr("z-index") > highest_index) {
         highest_index = $(this).attr("z-index");
    }
});

同样,将新索引应用到元素的方法相同:

$("your_element").attr("z-index", highest_index + 1);

Here's how to do it :

var elements = document.getElementsByTagName("*");
var highest_index = 0;

for (var i = 0; i < elements.length - 1; i++) {
    if (parseInt(elements[i].style.zIndex) > highest_index) {
        highest_index = parseInt(elements[i].style.zIndex;
    }
}

highest_index now contains the highest z-index on the page... just add 1 to that value and apply it wherever you want. You can apply it like so :

your_element.style.zIndex = highest_index + 1;

Here's another way of achieving the same thing using jQuery :

var highest_index = 0;

$("[z-index]").each(function() {
    if ($(this).attr("z-index") > highest_index) {
         highest_index = $(this).attr("z-index");
    }
});

Again, same way to apply the new index to an element :

$("your_element").attr("z-index", highest_index + 1);
东风软 2024-10-20 03:42:11

堆叠上下文怎么样? 并不总是这样:在文档上,最高的 z-index 将位于顶部。请参阅:http://philipwalton.com/articles/没有人告诉你关于 z-index 的事情/。如果不考虑堆叠上下文,设置 10 亿可能不足以使您的元素位于最顶层。

What about stacking context? It is not always true that: On a document highest z-index will be on top. See: http://philipwalton.com/articles/what-no-one-told-you-about-z-index/. If you do not take stacking context into account, setting a billion may not be enough to make your element on the top-most.

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