javascript - How can I toggle my sidebar by using just javascript?
问题描述
I've tried to use the removeEventListener with the opposite marks but that didn't work. I've also tried the if/else statement but that doesn't seem to work either. I know I must be missing something. Here is my code:
const toggler = document.querySelector('.toggler');
const sideBar = document.querySelector('.sidebar')
const links = document.querySelector('.nav-links');
const content = document.querySelector('body')
const menu = document.querySelector('.menu-toggler')
toggler.addEventListener('click', function openSideBar() {
sideBar.style.width = '200px';
sideBar.style.transition = ' all 1000ms';
links.style.left = '70px';
content.style.marginLeft = '200px';
content.style.transition = 'all 1000ms';
menu.style.marginLeft = '150px';
})
<div class="menu">
<h1>Move It over</h1>
<div class="menu-toggler">
<input type="checkbox" class="toggler">
</div>
<div class="sidebar">
<ul class="nav-links">
<li class="nav-link"><a href="">Home</a></li>
<li class="nav-link"><a href="">About</a></li>
<li class="nav-link"><a href="">Services</a></li>
<li class="nav-link"><a href="">Contact</a></li>
</ul>
</div>
</div>
解决方案
The best approach will be just to add/remove a class on click
Make a class .open
and add the properties to it.
List all the properties you want to for parent and child class.
.open{
width:200px;
transition : all 1000ms;
}
.open .nav-link{
left:70px;
}
JS Can be simplified to
const sideBar = document.querySelector('.sidebar')
toggler.addEventListener('click', function openSideBar() {
sideBar.classList.toggle('open');
});
推荐阅读
- c# - 使用打卡/打卡计时器并显示经过的时间
- ios - 如何检查日期字符串是否为“02 DEC 2014”这种格式?
- regex - 有没有办法从 Tableau 中的 regexp_match 语句中排除某些关键字?
- matlab - “警告:模拟将从非零初始时间开始”我该如何解决这个错误?
- python - Python/Pandas:TypeError:float() 参数必须是字符串或数字,而不是“函数”
- c# - 我希望我的 TEXTBOX 只接受 10 个数值
- javascript - jquery 通过 .html() 访问元素返回未定义
- python - 为多个 Python 文件编写单元测试
- java - 如何固定我的数学正方形三角形的角度?
- c++ - 当类具有 :: 时理解继承