Ну тут очевидно человек хотел сделать отдельное поле с id='percentage-value', что бы выводить туда численное значение %, но забыл. Это, конечно, ошибка
Надо так
let updateScrollPercentage = function() {
let heightOfWindow = window.innerHeight;
let contentScrolled = window.pageYOffset;
let bodyHeight = document.body.offsetHeight;
let percentage = document.querySelector(".percentage");
if(bodyHeight - contentScrolled <= heightOfWindow) {
percentage.style.width = "100%"
}
else {
let total = bodyHeight - heightOfWindow;
let got = contentScrolled;
let percent = parseInt((got/total) * 100);
percentage.style.width = percent + "%"
}
}
window.addEventListener('scroll', updateScrollPercentage)
берем высоту элемента вычитает проскороленые значение и если они меньше или равны видимой части окна то
из блока заменяем контент на ширину блока и присваивает 100 процентов, что это такое?
Ну тут берем ту часть документа, которая видна в окне просмотра (bodyHeight - contentScrolled) и, если ее высота меньше высоты окна просмотра, то прокручивать больше нельзя, поэтому - 100%.
Иначе
let total = bodyHeight - heightOfWindow; - какая часть документа не влезает в окно просмотра
let got = contentScrolled; - какая часть документа находится вверху, т.е. на сколько прокрутили.
Ну и далее берем %