Показать сообщение отдельно
  #1 (permalink)  
Старый 11.08.2020, 11:16
Профессор
Отправить личное сообщение для Artur_Hopf Посмотреть профиль Найти все сообщения от Artur_Hopf
 
Регистрация: 13.03.2018
Сообщений: 278

Как понять до какого место произведен 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 выполнялась функция.

Последний раз редактировалось Artur_Hopf, 11.08.2020 в 11:19.
Ответить с цитированием