要实现当侧边栏打开时将侧边栏旁边的 div
推向左侧,可以使用 CSS 的 transform
属性。以下是一个示例代码:
<!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>Document</title>
</head>
<body>
<div id="sidebar">侧边栏</div>
<div id="content">主要内容</div>
<style>
#sidebar {
width: 200px;
background-color: #f1f1f1;
position: fixed;
top: 0;
bottom: 0;
left: -200px;
transition: all 0.3s ease;
}
#sidebar.open {
left: 0;
}
#content {
margin-left: 200px;
padding: 20px;
}
</style>
<script>
// 获取侧边栏元素
var sidebar = document.getElementById("sidebar");
// 添加点击事件监听器
sidebar.addEventListener("click", function () {
if (sidebar.classList.contains("open")) {
// 关闭侧边栏时,将 div 推向右侧
sidebar.classList.remove("open");
document.getElementById("content").classList.remove("push");
} else {
// 打开侧边栏时,将 div 推向左侧
sidebar.classList.add("open");
document.getElementById("content").classList.add("push");
}
});
</script>
</body>
</html>
在上述代码中,我们使用 position:fixed
将侧边栏固定在左侧,并使用 transition
属性添加平滑过渡效果。当点击侧边栏时,我们切换 open
类名,以控制侧边栏的显示和隐藏。当侧边栏打开时,我们添加 push
类名到 #content
元素,以使其在侧边栏打开时向左移动。
你可以根据实际需求调整侧边栏的宽度、过渡时间和其他样式属性。此外,确保在实际应用中正确引入和使用上述代码,并根据你的 HTML 结构进行适当的调整。