将SCSS和JS文件添加到html,无法正常工作

时间:2020-04-23 23:28:28

标签: javascript html css sass web-deployment

我一直试图将这个“汉堡”样式菜单添加到网站上,并且由于汉堡动画没有在点击中播放而卡住。

菜单在这里:https://codepen.io/designcouch/pen/hyFAD

我将“已编译的” SCSS代码放入css文件中,并将其链接起来,就像我想要其他任何css文件一样。

有人可以解释我在做什么错吗?先感谢您。

$('#menu-toggle').click(function(){
  $(this).toggleClass('open');
})
* {
  transition: 0.25s ease-in-out;
  box-sizing: border-box;
}

body {
  background: #d9e4ea;
}

span {
  display: block;
  background: #566973;
  border-radius: 2px;
}

#menu-toggle {
  width: 100px;
  height: 100px;
  margin: 50px auto;
  position: relative;
  position: relative;
  cursor: pointer;
  background: rgba(255, 255, 255, 0.4);
  border-radius: 5px;
}
#menu-toggle:hover {
  background: rgba(255, 255, 255, 0.8);
}
#menu-toggle #hamburger {
  position: absolute;
  height: 100%;
  width: 100%;
}
#menu-toggle #hamburger span {
  width: 60px;
  height: 4px;
  position: relative;
  top: 24px;
  left: 20px;
  margin: 10px 0;
}
#menu-toggle #hamburger span:nth-child(1) {
  transition-delay: 0.5s;
}
#menu-toggle #hamburger span:nth-child(2) {
  transition-delay: 0.625s;
}
#menu-toggle #hamburger span:nth-child(3) {
  transition-delay: 0.75s;
}
#menu-toggle #cross {
  position: absolute;
  height: 100%;
  width: 100%;
  transform: rotate(45deg);
}
#menu-toggle #cross span:nth-child(1) {
  height: 0%;
  width: 4px;
  position: absolute;
  top: 10%;
  left: 48px;
  transition-delay: 0s;
}
#menu-toggle #cross span:nth-child(2) {
  width: 0%;
  height: 4px;
  position: absolute;
  left: 10%;
  top: 48px;
  transition-delay: 0.25s;
}

#menu-toggle.open #hamburger span {
  width: 0%;
}
#menu-toggle.open #hamburger span:nth-child(1) {
  transition-delay: 0s;
}
#menu-toggle.open #hamburger span:nth-child(2) {
  transition-delay: 0.125s;
}
#menu-toggle.open #hamburger span:nth-child(3) {
  transition-delay: 0.25s;
}
#menu-toggle.open #cross span:nth-child(1) {
  height: 80%;
  transition-delay: 0.625s;
}
#menu-toggle.open #cross span:nth-child(2) {
  width: 80%;
  transition-delay: 0.375s;
}
<html>
<head>
  <link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<div id="menu-toggle">
  <div id="hamburger">
    <span></span>
    <span></span>
    <span></span>
  </div>
  <div id="cross">
    <span></span>
    <span></span>
  </div>
</div>
<script src="button.js"></script>
</body>
</html>

1 个答案:

答案 0 :(得分:-1)

您在这里所做的一切都正确。可能您正在使用的$对象需要调用一个库。

$('#menu-toggle').click(function(){
   $(this).toggleClass('open');
})

您使用的语法实际上来自一个名为jQuery的库,该库基于JavaScript构建,并提供了实用程序来帮助我们编写更少,更好的代码。

为此,只需在Internet上搜索jQuery CDN。打开第一个链接并转到缩小的jQuery 3.x,将显示一个弹出窗口,然后复制脚本并将其放置在关闭body标签之前。

<html>
<head></head>
<body>

<!-- jQuery CDN -->
<script src="https://code.jquery.com/jquery-3.5.0.min.js" />
</body>
</html>

此外,如果您不愿意使用jQuery。这就是用本机JavaScript编写的方式。

document.getElementById("menu-toggle").addEventListener("click", function(){
  if(this.classList[0] === 'open'){
     this.classList.remove('open');
  }
  else {
     this.classList.add('open');
  }
});