首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用jQuery查找最高的z索引

如何使用jQuery查找最高的z索引
EN

Stack Overflow用户
提问于 2011-04-16 02:19:45
回答 11查看 64.6K关注 0票数 43

我有许多具有不同z索引的div元素。我想在这些div中找到最高的z指数--我该如何实现呢?

CSS:

代码语言:javascript
复制
#layer-1 { z-index: 1 }
#layer-2 { z-index: 2 }
#layer-3 { z-index: 3 }
#layer-4 { z-index: 4 }

HTML:

代码语言:javascript
复制
<div id="layer-1">layer-1</div>
<div id="layer-2">layer-2</div>
<div id="layer-3">layer-3</div>
<div id="layer-4">layer-4</div>

但我不认为这条线能找到最高的z指数。

代码语言:javascript
复制
var index_highest = parseInt($("div").css("zIndex"));
// returns 10000
EN

回答 11

Stack Overflow用户

回答已采纳

发布于 2011-04-16 02:23:34

请注意,z-index仅影响定位的元素。因此,任何带有position: static的元素都将没有z索引,即使您为其赋值也是如此。这在像Google Chrome这样的浏览器中尤其如此。

代码语言:javascript
复制
var index_highest = 0;   
// more effective to have a class for the div you want to search and 
// pass that to your selector
$("#layer-1,#layer-2,#layer-3,#layer-4").each(function() {
    // always use a radix when using parseInt
    var index_current = parseInt($(this).css("zIndex"), 10);
    if(index_current > index_highest) {
        index_highest = index_current;
    }
});

JSFiddle demo

当与返回一个值的选项一起使用时,像这样的通用jQuery选择器将只返回第一个值,因此您的结果只是jQuery获取的第一个div的z索引。要只获取您想要的div,可以在它们上使用一个类。如果您想要所有的div,请坚持使用div

票数 35
EN

Stack Overflow用户

发布于 2013-08-30 20:58:41

下面是一个非常简洁的方法:

代码语言:javascript
复制
var getMaxZ = function(selector){
    return Math.max.apply(null, $(selector).map(function(){
        var z;
        return isNaN(z = parseInt($(this).css("z-index"), 10)) ? 0 : z;
    }));
};

用法:

代码语言:javascript
复制
getMaxZ($("#layer-1,#layer-2,#layer-3,#layer-4"));

或者,作为jQuery扩展:

代码语言:javascript
复制
jQuery.fn.extend({
    getMaxZ : function(){
        return Math.max.apply(null, jQuery(this).map(function(){
            var z;
            return isNaN(z = parseInt(jQuery(this).css("z-index"), 10)) ? 0 : z;
        }));
    }
});

用法:

代码语言:javascript
复制
$("#layer-1,#layer-2,#layer-3,#layer-4").getMaxZ();
票数 13
EN

Stack Overflow用户

发布于 2011-04-16 02:30:08

除了上面@justkt的原生解决方案之外,还有一个很好的插件可以做你想做的事情。看看TopZIndex吧。

代码语言:javascript
复制
$.topZIndex("div");
票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5680770

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档