当前位置:网站首页>Find the highest value of the current element Z-index of the page
Find the highest value of the current element Z-index of the page
2022-07-02 06:22:00 【Can't be lacking, can't be excessive】
z-index Property to set the stacking order of elements . Elements with a higher stacking order are always in front of elements with a lower stacking order .
z-index Need and position Property can only take effect when used together .
Use a background
Why do I need to find the current element of the page z-index The highest value ?
When we use some shell components , Hope it appears at the top of the page , Cover the rest of the page , Do such interaction .
Which components need to find the highest of the current page z-index?
For example, the common tooltip dialog popup alert And so on .
I set a large number assigned to z-index No way? ?
scene 1: A page or a project may be developed by more than one person at the same time , You can set a big number to z-index Where you need to . When your colleagues develop , If he finds that his development content is covered by your development content , Just set a larger number to z-index.
scene 2: One dialog Continue to pop up a dialog, So you have to set it twice dialog Of z-index,
In the long term , It will bring a lot of inconvenience to the front-end development .
There are two solutions
- The front-end team forms a unified specification , Different components set different z-index Range , Different businesses use fixed components .
- Automatically get the current z-index The highest value , Then add one to it .
If it's the first way , How to form norms , There will be no further discussion here .
obtain z-index The highest value
- Put all of the entire page dom Get , And turn it into an array .
document.all It's actually a pseudo array , Need to use Array.from Change my
const allElement = Array.from(document.all);
- Use window.getComputedStyle() Method to get the name of the element z-index attribute , If you don't get it, just go straight to 0
Why use getComputedStyle?
getComputedStyle Not only can you get css Written z-index, You can also get the style in the line
const zIndexArray = []
allElement.forEach((item) => {
zIndexArray.push(Number(window.getComputedStyle(item, null).getPropertyValue("z-index"))
})
- In some way ( such as max Or sort ) find z-index Maximum value .
const maxZIndex = Math.max(...zIndexArray)
- Will be the biggest z-index Add 1 return .
return maxZIndex + 1
The combined code is
function getMaxZIndex() {
const allElement = Array.from(document.all);
const zIndexArray = []
allElement.forEach((item) => {
zIndexArray.push(Number(window.getComputedStyle(item, null).getPropertyValue("z-index")) || 0)
})
const maxZIndex = Math.max(...zIndexArray)
return maxZIndex + 1
}
Someone on the current test website will z-index Set up a 1000000
Optimize it properly , We will all be 0 Of z-index Get rid of
function getMaxZIndex() {
const allElement = Array.from(document.all);
const zIndexArray = []
allElement.forEach((item) => {
const itemZIndex = Number(window.getComputedStyle(item, null).getPropertyValue("z-index"))
if(itemZIndex) {
zIndexArray.push(itemZIndex)
}
})
let maxZIndex = 0
if(zIndexArray.length) {
maxZIndex = Math.max(...zIndexArray)
}
return maxZIndex + 1
}
边栏推荐
- TensorRT的功能
- 让每一位开发者皆可使用机器学习技术
- BGP 路由優選規則和通告原則
- Jetpack Compose 与 Material You 常见问题解答
- No subject alternative DNS name matching updates. jenkins. IO found, the reason for the error and how to solve it
- 浅谈三点建议为所有已经毕业和终将毕业的同学
- 10 erreurs classiques de MySQL
- Bgp Routing preference Rules and notice Principles
- Deep learning classification network -- Network in network
- LeetCode 39. Combined sum
猜你喜欢
随机推荐
No subject alternative DNS name matching updates. jenkins. IO found, the reason for the error and how to solve it
TensorRT中的循环
来自读者们的 I/O 观后感|有奖征集获奖名单
谷歌出海创业加速器报名倒计时 3 天,创业人闯关指南提前收藏!
The difference between session and cookies
TensorRT的命令行程序
IPv6 experiment and summary
LeetCode 40. Combined sum II
Use of Arduino wire Library
Spark overview
LeetCode 47. 全排列 II
官方零基础入门 Jetpack Compose 的中文课程来啦!
From design delivery to development, easy and efficient!
Arduino Wire 库使用
【程序员的自我修养]—找工作反思篇二
【张三学C语言之】—深入理解数据存储
Talking about MySQL database
Is there a really free applet?
sudo提权
Data science [9]: SVD (2)