Суть задания состоит в том, что есть прогресс бар, в котором есть собственно сам процесс загрузки, где должен выводится уже загруженный процент. Поскольку все это только на уровне верстки, то задача состоит в том, чтобы вывести ширину дочернего элемента, как тот самый процент загрузки, который можно изменить при изменении самой ширины дочернего элемента. Возможно вопрос тупой, но второй день не доходит, как же именно вывести ширину дочернего элемента. Поскольку по ходу написания кода выводиться ширина только родителя в пикселях, а если обратится к родителю через lastChild.clientWidth - то выходит undеfinеd.
Подскажите, пожалуйста, что здесь не так, и может есть толковая документация, как это делать на чистом JS без jQuery?
<form class="upload-box">
<p class="upload-text" id="numProgress"></p>
<div class="progress-box">
<div class="progress-track"></div>
<div class="progress-percent"></div>
</div>
<p class="upload-desc">Please wait...</p>
<button class="upload-btn-cancel upload-btn-cancel--margin-top">Cancel</button>
</form>
.progress-box{
position: relative;
height: 6px;
width: 183px;
}
.progress-track{
position: absolute;
top: 0;
left: 0;
height: 100%;
width: 100%;
border-radius: 10px;
margin-top: 17px;
background-color: #E0E0E0FF;
}
.progress-percent{
position: absolute;
top: 17px;
left: 0;
height: 100%;
width: 59%;
border-radius: 10px;
background-color: #18A0FBFF;
}
let progressBox = document.querySelector('.progress-box').lastChild.clientWidth; // undefined
let progressPercent = document.querySelector('.progress-percent').clientWidth; //108px
let numProgress = document.getElementById('numProgress');
numProgress.innerHTML = progressPercent + '% uploaded';