侧边栏最小化组件
需求
用js设计一个侧边栏最小化的组件。
- 页面右侧展示一个侧边栏,侧边栏底部有一个“收起”按钮
- 点击“收起”按钮,隐藏侧边栏,并展示一个小的展开按钮
- 点击展开按钮即可重新展示侧边栏
代码
以下是一个简单的实现侧边栏最小化的组件的 JavaScript 代码:
<!DOCTYPE html>
<html>
<head>
<title>侧边栏最小化组件</title>
<style>
#sidebar {
position: fixed;
top: 0;
right: 0;
width: 200px;
height: 100%;
background-color: #f0f0f0;
padding: 20px;
transition: transform 0.3s ease-in-out;
transform: translateX(0);
}
#sidebar.minimized {
transform: translateX(100%);
}
#toggle-sidebar {
position: fixed;
top: 50%;
right: 0;
transform: translateY(-50%);
background-color: #ccc;
border: none;
padding: 10px;
border-radius: 50%;
cursor: pointer;
display: none;
}
#toggle-sidebar.show {
display: block;
}
</style>
</head>
<body>
<div id="sidebar">
<h2>侧边栏标题</h2>
<p>这里是侧边栏内容</p>
<button id="collapse-sidebar">收起</button>
</div>
<button id="toggle-sidebar">展开</button>
<script>
const collapseButton = document.getElementById('collapse-sidebar');
const toggleButton = document.getElementById('toggle-sidebar');
const sidebar = document.getElementById('sidebar');
// 添加“收起”按钮的点击事件处理程序
collapseButton.addEventListener('click', () => {
sidebar.classList.add('minimized');
toggleButton.classList.add('show');
});
// 添加展开按钮的点击事件处理程序
toggleButton.addEventListener('click', () => {
sidebar.classList.remove('minimized');
toggleButton.classList.remove('show');
});
</script>
</body>
</html>
在这个例子中,我们使用了 CSS 中的 transform
属性来控制侧边栏的显示状态,使用 translateX
将侧边栏从页面右侧平移出来,使用 translateX(100%)
将其平移回去,达到隐藏的效果。同时,使用 transition
属性来为这个变换添加动画效果。
在 JavaScript 代码中,我们通过获取 #collapse-sidebar
和 #toggle-sidebar
元素的引用,分别为它们添加了点击事件的处理程序,以控制侧边栏的最小化和展开。
评论