My idea is when I click on the button, the div#x
will lose 1% of width. Here is my code:
document.querySelector('#a').onclick = function() {
var
lost = document.querySelector('#x').style.width,
lost = lost.slice(0, -1);
lost = Number(lost);
lost -= 1;
document.querySelector('#x').style.width = lost + '%';
}
nav#control {
display: flex;
flex-basis: 50px;
align-items: center;
justify-content: center;
background: #FFF;
padding: 5px;
width: 100%
}
.knob {
display: flex;
align-items: center;
justify-content: center;
width: 40px; height: 40px;
cursor: pointer
}
#b {
position: relative;
flex-grow: 1;
background: #EFEFEF;
margin: 0 10px;
height: 30px
}
#x {
position: absolute;
background: #4C8EFA;
width: 100%; height: 30px;
border-radius: 1px;
z-index: 2
}
#c {
display: flex;
align-items: center;
justify-content: center;
height: 30px;
}
<nav id='control'>
<section id='a' class='knob'><img src='x.png'/></section>
<section id='b'>
<div id='x'></div>
<div id='c'>background</div>
</section>
<section id='d' class='knob'><img src='x.png'/></section>
</nav>
The blue bar (div#x
) is supposed to be shorter 1% every time I click on the left button (section#a
). I have check so many times but I still don't know what problem with my code. I did change some code and I think that problem is in this line lost = document.querySelector('#x').style.width
because it seems like it doesn't return any value which is supposed to gimme 100%
width of div#x