Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как понять до какого место произведен scroll. (https://javascript.ru/forum/misc/80833-kak-ponyat-do-kakogo-mesto-proizveden-scroll.html)

Artur_Hopf 11.08.2020 11:16

Как понять до какого место произведен scroll.
 
Добрый день. Пытаюсь понять как зафиксировать момент скрола до определенной точки.
Сейчас я создал переменную, и записываю туда координаты элемента.
let off_height = 0;

//цикл перебора элементов, item это найденный DOM элемент, i это номер элемента в списке.
if( i == num )
{
     let box = item.getBoundingClientRect();
     off_height = box.y;
}


Далее пытаюсь написать код, который бы реагировал на scroll до элемента off_height.

Написал так:
document.addEventListener("wheel", function(el){

    if(scroll_last <= window.pageYOffset && off_height > 0)
    {
        scroll_last = window.pageYOffset;

        let scrollHeight = Math.max(
            document.body.scrollHeight, document.documentElement.scrollHeight,
            document.body.offsetHeight, document.documentElement.offsetHeight,
            document.body.clientHeight, document.documentElement.clientHeight
        );

// вот тут предполагается что scroll дошел до элемента off_height , но это не так. scrollHeight  это просто максимальная длинна экрана и она всегда больше чем off_height. 

        if(scrollHeight >= off_height ) 
        {
            num += 12;
            hide_product( num ); //добавляются элементы которые расширяют экран
        }   
    }
});

Подскажите как быть, мне нужно просто указать низ экрана от верха при скролле, чтобы если он достиг off_height выполнялась функция.

Nexus 11.08.2020 11:54

element.getBoundingClientRect().top + document.body.scrollTop;


Часовой пояс GMT +3, время: 23:11.