CSS实现渐隐渐现效果
- 作者: 五速梦信息网
- 时间: 2026年04月04日 13:46
CSS实现渐隐渐现效果
displaynone
实现
opacity
opacityopacity0transitionendopacity
<!DOCTYPE html>
<html>
<head>
<title>opacity</title><br/>
<style type="text/css"><br/>
.page{<br/>
width: 200px;<br/>
padding: 10px 20px;<br/>
border: 1px solid #eee;<br/>
}<br/>
.container {<br/>
overflow: hidden;<br/>
}<br/>
.container > .options{<br/>
opacity: 1;<br/>
transition: all .5s;<br/>
}<br/>
.container > .btn{<br/>
color: #4C98F7;<br/>
cursor: pointer;<br/>
text-decoration: underline;<br/>
}<br/>
.container > .hide{<br/>
display: none;<br/>
}<br/>
.container > .fold{<br/>
opacity: 0;<br/>
}<br/>
</style><br/>
</head>
<body>
<div class="page"><br/>
<div class="container"><br/>
<div class="btn" onclick="operate(this)" unfold="1">隐藏</div><br/>
<div class="options"><br/>
<div class="option">选项1</div><br/>
<div class="option">选项2</div><br/>
<div class="option">选项3</div><br/>
<div class="option">选项4</div><br/>
<div class="option">选项5</div><br/>
<div class="option">选项6</div><br/>
<div class="option">选项7</div><br/>
</div><br/>
</div><br/>
</div><br/>
</body>
<script type=“text/javascript”>
function operate(btn){<br/>
const optionsNode = document.querySelector(".container > .options");<br/>
const unfold = btn.getAttribute("unfold");<br/>
if(unfold && unfold==="1"){<br/>
btn.innerText = "打开";<br/>
optionsNode.classList.add("fold");<br/>
const finish = () => {<br/>
optionsNode.classList.add("hide");<br/>
optionsNode.removeEventListener("transitionend", finish); // 移除监听器<br/>
}<br/>
optionsNode.addEventListener("transitionend", finish); // 添加监听器<br/>
}else{<br/>
btn.innerText = "隐藏";<br/>
optionsNode.classList.remove("hide");<br/>
setTimeout(() => optionsNode.classList.remove("fold"));<br/>
}<br/>
btn.setAttribute("unfold", unfold === "0" ? "1" : "0");<br/>
}<br/>
</script>
</html>
visibility opacity
visibilityhiddenopacityvisibilityvisiblevisibilityhiddenIE 9visibility: hidden;visibility: visible;3shiddenvisible3s3sopacity
<!DOCTYPE html>
<html>
<head>
<title>opacity</title><br/>
<style type="text/css"><br/>
.page{<br/>
width: 200px;<br/>
padding: 10px 20px;<br/>
border: 1px solid #eee;<br/>
}<br/>
.container {<br/>
overflow: hidden;<br/>
}<br/>
.container > .options{<br/>
opacity: 1;<br/>
visibility: visible;<br/>
transition: all .5s;<br/>
}<br/>
.container > .btn{<br/>
color: #4C98F7;<br/>
cursor: pointer;<br/>
text-decoration: underline;<br/>
}<br/>
.container > .hide{<br/>
display: none;<br/>
}<br/>
.container > .fold{<br/>
opacity: 0;<br/>
visibility: hidden;<br/>
}<br/>
</style><br/>
</head>
<body>
<div class="page"><br/>
<div class="container"><br/>
<div class="btn" onclick="operate(this)" unfold="1">隐藏</div><br/>
<div class="options"><br/>
<div class="option">选项1</div><br/>
<div class="option">选项2</div><br/>
<div class="option">选项3</div><br/>
<div class="option">选项4</div><br/>
<div class="option">选项5</div><br/>
<div class="option">选项6</div><br/>
<div class="option">选项7</div><br/>
</div><br/>
</div><br/>
</div><br/>
</body>
<script type=“text/javascript”>
function operate(btn){<br/>
const optionsNode = document.querySelector(".container > .options");<br/>
const unfold = btn.getAttribute("unfold");<br/>
if(unfold && unfold==="1"){<br/>
btn.innerText = "打开";<br/>
optionsNode.classList.add("fold");<br/>
const finish = () => {<br/>
optionsNode.classList.add("hide");<br/>
optionsNode.removeEventListener("transitionend", finish); // 移除监听器<br/>
}<br/>
optionsNode.addEventListener("transitionend", finish); // 添加监听器<br/>
}else{<br/>
btn.innerText = "隐藏";<br/>
optionsNode.classList.remove("hide");<br/>
setTimeout(() => optionsNode.classList.remove("fold"));<br/>
}<br/>
btn.setAttribute("unfold", unfold === "0" ? "1" : "0");<br/>
}<br/>
</script>
</html>
每日一题
https://github.com/WindrunnerMax/EveryDay
参考
https://juejin.cn/post/6844903497998024711
https://www.cnblogs.com/MrZhujl/p/10315177.html
https://blog.csdn.net/u012767761/article/details/87369414
相关文章
-
css通用小笔记03——浏览器窗口变小 div错位的问题
css通用小笔记03——浏览器窗口变小 div错位的问题
- 互联网
- 2026年04月04日
-
css伪元素实现tootip提示框
css伪元素实现tootip提示框
- 互联网
- 2026年04月04日
-
CSS写的提示框(兼容火狐IE等各大浏览器)
CSS写的提示框(兼容火狐IE等各大浏览器)
- 互联网
- 2026年04月04日
-
CSS十问——好奇心+刨根问底=CSSer
CSS十问——好奇心+刨根问底=CSSer
- 互联网
- 2026年04月04日
-
css居中div的几种常用方法
css居中div的几种常用方法
- 互联网
- 2026年04月04日
-
css根据宽度自适应高度
css根据宽度自适应高度
- 互联网
- 2026年04月04日






