I am doing some experiments and i have this code now, i have a class that is added dynamically to all of my 3 containers whenever the button clicked.
The class is added successfully to all divs but only one div that is animated!!
const hamburgers = [...document.getElementsByClassName('hamburger')];
const btn = document.getElementById('btn');
btn.addEventListener('click', () => {
hamburgers.forEach(hamburger => {
if(!hamburger.classList.contains('move')) hamburger.classList.add('move') ;
else hamburger.classList.remove('move')
})
})
.hamburger {
position: relative;
}
.bar {
background: orange;
position: absolute;
width: 50px;
height:5px;
margin-top: 20px;
}
.bar:nth-of-type(1) {
top:50px;
}
.bar:nth-of-type(2) {
top: 100px;
}
.bar:nth-of-type(3) {
top: 150px;
}
#hamburger-1 {
left: 500px;
background: #eee;
}
#hamburger-3 {
left: 700px;
}
.move {
left: -150%;
transition: left 0.4s ease-in-out;
}
<div class="hamburger" id="hamburger-1">
<div class="bar"></div>
<div class="bar"></div>
<div class="bar"></div>
</div>
<div class="hamburger" id="hamburger-2">
<div class="bar"></div>
<div class="bar"></div>
<div class="bar"></div>
</div>
<div class="hamburger" id="hamburger-3">
<div class="bar"></div>
<div class="bar"></div>
<div class="bar"></div>
</div>
<button id="btn">click</button>
Why left:-150%
only work for one div and not the others when click the button??