Показать сообщение отдельно
  #11 (permalink)  
Старый 21.04.2020, 10:50
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,745

Ну тут очевидно человек хотел сделать отдельное поле с 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; - какая часть документа находится вверху, т.е. на сколько прокрутили.
Ну и далее берем %
Ответить с цитированием