Существует ли обработчики срабатывающие, когда элемент попал в зону видимости страницы?
Хочу отрисовывать элементы по мере прокуртки, т. е. элемент появился в зоне зрения и мы тут же берем его в работу. Существуют ли нативные обработчики для подобных целей? Чтобы срабатывал, когда элемент оказался в области обзора.
У меня на странице много-много полей textarea, для их корректного отображения я использую плагин autosize, но у плагина есть жирный минус: если на вход подать сразу много элементов, страница секунд на 20 подвисает. Соответсвенно, я хочу решить проблему подавая элементы постепенно, лишь по мере прокуртки страницы - вешать autosize только на элементы оказавшиеся в зоне видимости.
Удалось реализовать ленивую отрисовку высоты 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);
}
}
}