【发布时间】:2016-01-19 00:11:01
【问题描述】:
为了更好地了解我在做什么,请查看我以前的代码,我试图让它变得更好>>Codepen
我想要一个数组,用我尝试制作动画的所有id's 填充,并使用一个函数在数组中的每个id 上切换类.open .closed。
单击将.open 添加到#Hamburger, #Navigation, #Black-filter。然后单击一秒钟删除.open 并为id's 添加.closed。
因为我还在学习 javascript,所以我希望它在 vanilla javascript 中工作,所以在我继续使用 jquery 之前我了解了基础知识。
var hamburger = document.getElementById('Hamburger');
var navigation = document.getElementById('Navigation');
var blackFilter = document.getElementById('Black-filter');
var isOpen = true; // true or false
var animation = [h, s, b]; // #H #S #B
var open = "open"; // .open
var closed = "closed"; // .closed
function trigger() {
if (isOpen === true) {
animation.classList.add(open); // add .open to all id's
animation.classList.remove(closed); // remove .closed from all id's
} else {
animation.classList.add(closed);
animation.classList.remove(open);
}
isOpen = !isOpen; // toggles true to false
}
hamburger.addEventListener('click', trigger, false); // onclick toggle class
blackFilter.addEventListener('click', trigger, false); // onclick toggle class
body {
width: 100%;
}
#Hamburger {
height: 100px;
background: red;
width: 100px;
}
#Hamburger.open {
opacity: 0.5;
}
#Hamburger.closed {
opacity: 1;
}
#Navigation {
height: 100px;
background: blue;
width: 100px;
}
#Navigation.open {
opacity: 0.5;
}
#Navigation.closed {
opacity: 1;
}
#Black-filter {
height: 100px;
background: green;
width: 100px;
}
#Black-filter.open {
opacity: 0.5;
}
#Black-filter.closed {
opacity: 1;
}
<body>
<div id="Hamburger"></div>
<div id="Navigation"></div>
<div id="Black-filter"></div>
</body>
【问题讨论】:
-
天哪!请更改您的变量名称。由于名称的原因,需要做很多额外的工作来解密您的代码。
-
请提供一个最小的例子(你的 css 不相关)。同时展示一些试图自己解决这个问题的证据。
-
你看过控制台吗?
-
您知道在顶部您设置了两次
var open- 一次作为布尔变量,然后第二次作为字符串变量? (补充:纠正做得很好)。 -
@Rounin 感谢我编辑帖子时没有注意到
标签: javascript html css arrays