当前位置:网站首页>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
}
边栏推荐
- Cglib代理-代码增强测试
- 495. Timo attack
- 让每一位开发者皆可使用机器学习技术
- 程序员的自我修养—找工作反思篇
- LeetCode 90. Subset II
- 深入了解JUC并发(二)并发理论
- Don't use the new WP collection. Don't use WordPress collection without update
- Google Play Academy 组队 PK 赛,正式开赛!
- Contest3147 - game 38 of 2021 Freshmen's personal training match_ F: Polyhedral dice
- Ros2 --- lifecycle node summary
猜你喜欢
In depth understanding of JUC concurrency (I) what is JUC
日志(常用的日志框架)
It is said that Kwai will pay for the Tiktok super fast version of the video? How can you miss this opportunity to collect wool?
Detailed steps of JS foreground parsing of complex JSON data "case: I"
Singleton mode compilation
Flutter hybrid development: develop a simple quick start framework | developers say · dtalk
Deep learning classification network -- alexnet
Deep learning classification network -- Network in network
栈(线性结构)
The official zero foundation introduction jetpack compose Chinese course is coming!
随机推荐
No subject alternative DNS name matching updates. jenkins. IO found, the reason for the error and how to solve it
sudo提权
递归(迷宫问题、8皇后问题)
Reading classic literature -- Suma++
加密压缩文件解密技巧
MySQL的10大經典錯誤
Data playback partner rviz+plotjuggler
Cglib代理-代码增强测试
Leverage Google cloud infrastructure and landing area to build enterprise level cloud native excellent operation capability
网络相关知识(硬件工程师)
I/o multiplexing & event driven yyds dry inventory
Flutter hybrid development: develop a simple quick start framework | developers say · dtalk
Style modification of Mui bottom navigation
Web components series (VIII) -- custom component style settings
Generic classes and parameterized classes of SystemVerilog
从设计交付到开发,轻松畅快高效率!
日期时间API详解
LeetCode 90. Subset II
Sentinel 阿里开源流量防护组件
Use some common functions of hbuilderx