【发布时间】:2020-10-13 10:05:54
【问题描述】:
我尝试使用事件侦听器(单击)来更改多个元素的不透明度,并通过每次单击属性切换的过渡。我不知道为什么我的代码不工作并且找不到我的错误,所以我需要帮助。
window.addEventListener("load", function() {
document.querySelector(".hamburger").addEventListener("click", function(e) {
const con = document.querySelector(".con");
const links = document.querySelectorAll(".nav-link");
if (!con.classList.contains("js")) {
con.classList.toggle("con-js");
//forEach link (in const links) toggle the "link-toggle" class
}
})
})
.con-js {
width: 100%;
overflow: hidden;
}
.con ul li a {
opacity: 0;
/*transition for the opacity: opacity .8s 1s*/
}
.link-toggle {
opacity: 1;
/*transition for the opacity: opacity .3s 0s;*/
}
<div class="hamburger" ">
<!--Hamburger Content-->
</div>
<div class="con ">
<ul>
<li><a href="index.html " class="nav-link ">A</a></li>
<li><a href="menu.html " class="nav-link ">B</a></li>
<li><a href="# " class="nav-link ">C</a></li>
</ul>
</div>
【问题讨论】:
-
if (!con.classList.contains("js"))如果con已经包含一个类con-js,那么if块内的代码将不会运行。 -
那有什么办法呢?
-
您可以尝试删除 if 条件并检查吗?
标签: javascript css css-transitions dom-events