@zkrvndm
Софт для автоматизации

Существует ли обработчики срабатывающие, когда элемент попал в зону видимости страницы?

Хочу отрисовывать элементы по мере прокуртки, т. е. элемент появился в зоне зрения и мы тут же берем его в работу. Существуют ли нативные обработчики для подобных целей? Чтобы срабатывал, когда элемент оказался в области обзора.

У меня на странице много-много полей textarea, для их корректного отображения я использую плагин autosize, но у плагина есть жирный минус: если на вход подать сразу много элементов, страница секунд на 20 подвисает. Соответсвенно, я хочу решить проблему подавая элементы постепенно, лишь по мере прокуртки страницы - вешать autosize только на элементы оказавшиеся в зоне видимости.
  • Вопрос задан
  • 75 просмотров
Решения вопроса 1
@zkrvndm Автор вопроса
Софт для автоматизации
Удалось реализовать ленивую отрисовку высоты textarea - элементы идут в обработку по мере прокрутки страницы и входа в область видимости (с запасом, сверху на 100% и снизу на 300%). Решение следующее:
observer = new IntersectionObserver(onView, { threshold: [0], rootMargin: '100% 0px 300% 0px' });

textarea = document.querySelectorAll('textarea');

for (l = 0; l < tarrr.length; l++) {
	observer.observe(textarea[l]);
}

function onView(massiv) {
    
    for (j = 0; j < massiv.length; j++) {
        
        if (massiv[j].isIntersecting === true) {
            
            autosize(massiv[j].target);
            
        }
        
    }
    
}

Спасибо Алексей Тен за наводку =)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
10 мая 2024, в 03:40
1500 руб./за проект
10 мая 2024, в 03:02
5000 руб./за проект
10 мая 2024, в 02:29
300 руб./за проект