Как вывести ширину дочернего элемента в процентах?

Суть задания состоит в том, что есть прогресс бар, в котором есть собственно сам процесс загрузки, где должен выводится уже загруженный процент. Поскольку все это только на уровне верстки, то задача состоит в том, чтобы вывести ширину дочернего элемента, как тот самый процент загрузки, который можно изменить при изменении самой ширины дочернего элемента. Возможно вопрос тупой, но второй день не доходит, как же именно вывести ширину дочернего элемента. Поскольку по ходу написания кода выводиться ширина только родителя в пикселях, а если обратится к родителю через 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';
  • Вопрос задан
  • 127 просмотров
Решения вопроса 1
Fragster
@Fragster
помогло? отметь решением!
https://jsfiddle.net/3n9Loath/5/
можно вообще одним элементом и градиентом в бэкграунде развлечься, но мне лень.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы