我想让一个元素(例如<div>)成为页面的最顶层。
我的假设是,我能做到这一点的唯一方法是指定元素的style="z-index:"值是浏览器允许的最大值(int32?)。
这是正确的吗?
相反,是否有可能以某种方式获得元素的最高z-index,并将此<div>的z-index设置为[highest element's value] + 1?例如:
$myDiv.css("z-index", $(document.body).highestZIndex() + 1);模态JavaScript“窗口”是如何工作的?
发布于 2011-01-21 13:48:24
下面是如何做的:
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索引...只需将该值加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);发布于 2015-11-12 05:54:17
那么堆叠上下文呢?在文档上,最高的z索引将在顶部,这是而不是总是正确的。请参阅:http://philipwalton.com/articles/what-no-one-told-you-about-z-index/如果您不考虑堆叠上下文,设置十亿可能不足以使您的元素位于最上面。
发布于 2011-01-21 13:31:48
http://abcoder.com/javascript/a-better-process-to-find-maximum-z-index-within-a-page/ ->找到最大z索引并将+1赋值给它。
https://stackoverflow.com/questions/4755631
复制相似问题