效果预览
技术要点
实现思路
- 元素固定布局(fixed)在窗口最右侧外部
- js 定时器改变元素的 right 属性,控制元素移入,移出
过渡动画 transition
transition: 过渡的属性 过渡的持续时间 过渡时间函数 延迟时间
此处改变的是 right 属性,过渡动画的写法为
transition: right 0.3s;
盒模型
推荐用 IE 盒模型,方便控制元素的定位,避免添加 padding 后的误判。
代码实现
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>CSS 抽屉</title>
<style>
#drawer-container {
background-color: rgb(51, 172, 242);
color: white;
padding: 10px;
box-sizing: border-box;
width: 300px;
height: 100%;
position: fixed;
right: -300px;
top: 0;
transition: right 0.3s;
}
</style>
</head>
<body>
<div id="drawer-container">抽屉里的内容</div>
<script>
const drawerContainer = document.getElementById("drawer-container");
setTimeout(() => {
drawerContainer.style.right = "0px";
}, 1000);
setTimeout(() => {
drawerContainer.style.right = "-300px";
}, 3000);
</script>
</body>
</html>