gpt4 book ai didi

JavaScript 侧边栏滑动菜单

转载 作者:行者123 更新时间:2023-11-27 23:19:07 25 4
gpt4 key购买 nike

我正在尝试使用 HTML CSS 转换和标准 JavaScript 在右侧创建此侧边栏菜单,并且我还导入了一些 FontAwesome 图标。

我的代码如下所示(JavaScript 代码在 HTML 文档中):

<html lang="en">
<head>
<meta charset="UTF-8">
<title>Sidebar Menu</title>
<script src="https://kit.fontawesome.com/b1956a1c85.js" crossorigin="anonymous"></script>
<link rel="stylesheet" href="style.css">
</head>

<body>
<div class="sidebar">
<ul>
<li><a href="#"><i class="fas fa-home"></i></a></li>
<li><a href="#"><i class="fas fa-user"></i></a></li>
<li><a href="#"><i class="fas fa-cogs"></i></a></li>
<li><a href="#"><i class="fas fa-wrench"></i></a></li>
<li><a href="#"><i class="fas fa-tools"></i></a></li>
<li><a href="#"><i class="fas fa-lock"></i></a></li>
</ul>
</div>

<a href="#" class="button"><i class="fas fa-bars"></i></a>

<script>

let btn = document.querySelector('.button'),
side = document.querySelector('.sidebar');

btn.addEventListener('click', function() {
if(btn.innerHTML === '<i class="fas fa-bars"></i>') {
btn.innerHTML = '<i class="fas fa-times"></i>';
side.style.marginLeft = '0px';
} else if (btn.innerHTML === '<i class = "fas fa-times"></i>') {
btn.innerHTML = '<i class= "fas fa-bars"></i>';
side.style.marginLeft = '-25px';
}
});

</script>
</body>
</html>

我的 CSS 页面如下所示:

    margin: 0;
padding: 0;
box-sizing: border-box;
}

body {
background: #af8f36;
}

.sidebar {
float: left;
width: 120px;
height: 100vh;
background: #6e36af;
overflow: hidden;
margin-left: -125px;
transition: 0.5s;

}

.sidebar ul {
list-style: none;
}

.sidebar ul li a {
text-decoration: none;
color: #fff;
height: 100px;
width: 100%;
font-size: 40px;
line-height: 100px;
display: block;
text-align: center;
transition: 0.5s;
}

.sidebar ul li a:hover {
background: #5d2e94;
}

.button {
float: left;
padding: 27px 20px;
font-size: 40px;
text-decoration: none;
color: #333;
}

出于某种原因,当我单击汉堡包按钮时,侧边栏不会向右滑动。有人可以向我解释为什么吗?我的 JavaScript 代码是否正确?

最佳答案

我发现了你的问题:在您的 JS 代码中,您检查 Button 的内部 HTML 是否为:

<i class="fas fa-bars"></I>

但 Fontawesome 为您的 <I> 添加了一个新属性元素。所以现在它的内部 HTML 是:

<i class="fas fa-bars" aria-hidden="true"></I>

我建议在 js 中使用变量或类似的东西来检查/保存菜单是否打开。您的方式很容易导致更多错误。

此外,为了获得更好的性能,如果可能的话,我建议使用 Transform 而不是 margin 设置动画。

关于JavaScript 侧边栏滑动菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58116665/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com