当前位置:  开发笔记 > 前端 > 正文

如何计算文档中最高的z-index?

如何解决《如何计算文档中最高的z-index?》经验,为你挑选了3个好方法。

为了将包含透明文本图像的div设置为我文档中的最高z-index,我选择了数字10,000,它解决了我的问题.

以前我猜过3号但是没有效果.

那么,是否有更科学的方法来确定哪个z-index高于所有其他元素?

我试图在Firebug中寻找这个指标但却找不到它.



1> Jimmy Chandr..:

为了清楚起见,从代码站点窃取一些代码:

  var maxZ = Math.max.apply(null, 
    $.map($('body *'), function(e,n) {
      if ($(e).css('position') != 'static')
        return parseInt($(e).css('z-index')) || 1;
  }));



2> 小智..:

您可以调用findHighestZIndex特定的元素类型,例如'DIV',如下所示:

findHighestZIndex('div');

假设一个findHighestZindex定义如下的函数:

function findHighestZIndex(elem)
{
  var elems = document.getElementsByTagName(elem);
  var highest = 0;
  for (var i = 0; i < elems.length; i++)
  {
    var zindex=document.defaultView.getComputedStyle(elems[i],null).getPropertyValue("z-index");
    if ((zindex > highest) && (zindex != 'auto'))
    {
      highest = zindex;
    }
  }
  return highest;
}



3> 小智..:

使用ES6更清洁的方法

function maxZIndex() {

     return Array.from(document.querySelectorAll('body *'))
           .map(a => parseFloat(window.getComputedStyle(a).zIndex))
           .filter(a => !isNaN(a))
           .sort()
           .pop();
}


排序需要比较器才能正常工作.考虑一下:`[2,1,100] .sort()`给出结果`[1,100,2]`这是错误的.改为使用比较器:`[2,1,100] .sort((a,b)=> ab)`给出正确的`[1,2,100]`
使用`sort`似乎有很多不必要的CPU和内存消耗
推荐阅读
Life一切安好
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有