当前位置:网站首页>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
}
边栏推荐
- 找到页面当前元素z-index最高的数值
- Singleton mode compilation
- Classic literature reading -- deformable Detr
- 500. Keyboard line
- BGP 路由优选规则和通告原则
- Linear DP (split)
- New version of dedecms collection and release plug-in tutorial tool
- 深入学习JVM底层(二):HotSpot虚拟机对象
- Community theory | kotlin flow's principle and design philosophy
- RestTemplate请求时设置请求头,请求参数,请求体。
猜你喜欢
From design delivery to development, easy and efficient!
阿里云MFA绑定Chrome浏览器
Cglib代理-代码增强测试
Data playback partner rviz+plotjuggler
Community theory | kotlin flow's principle and design philosophy
队列(线性结构)
数据科学【八】:SVD(一)
稀疏数组(非线性结构)
数据科学【九】:SVD(二)
Detailed steps of JS foreground parsing of complex JSON data "case: I"
随机推荐
数据科学【八】:SVD(一)
浏览器原理思维导图
BGP报文详细解释
I/o impressions from readers | prize collection winners list
LeetCode 39. Combined sum
No subject alternative DNS name matching updates. jenkins. IO found, the reason for the error and how to solve it
数据科学【九】:SVD(二)
注解和反射详解以及运用
Ros2 --- lifecycle node summary
Data science [9]: SVD (2)
CUDA与Direct3D 一致性
CUDA中内置的Vector类型和变量
500. Keyboard line
Compte à rebours de 3 jours pour l'inscription à l'accélérateur de démarrage Google Sea, Guide de démarrage collecté à l'avance!
LeetCode 83. 删除排序链表中的重复元素
I/o multiplexing & event driven yyds dry inventory
CUDA用户对象
Mech 3002 explanation
CUDA中的Warp Shuffle
Contest3147 - game 38 of 2021 Freshmen's personal training match_ A: chicken