Вопрос по событию scroll
Добрый день.
Есть DOM-элемент, отслеживающий прокрутку (DOMElement.addEventListener('scroll', function(e){...})). В зависимости от направления прокрутки происходит подгрузка элемента в начало (container.insertBefore...) или в конец (container.appendChild) очереди дочерних элементов. Направление прокрутки определяется как разница между текущей величиной прокрутки и последним зафиксированным состоянием (+ или -). При прокрутке вниз нет никаких проблем. Проблема возникает при прокрутке вверх. Дело в том, что вставка нового элемента приводит к тому, что у контейнера увеличивается текущее состояние scrollTop и в результате возникает еще одно событие scroll. И я не знаю, как избавиться от такого поведения...
Варианты с событиями wheel b scrollend мне не подходят:
- по событию wheel удобно перелистывать элементы фиксированной высоты, а у меня элементы переменной высоты. Кроме того, у меня может быть даже элемент, превышающий по высоте viewport, а с поэлементным пролистыванием так не получится.
- событие scrollend вообще срабатывает только в конце прокрутки, т.е. пользователь может сделать большую прокрутку, а фактически отрисовка произойдет только в конце.
В общем, вопрос в том, можно ли как-то добавить дочерний элемент так, чтобы не случилось события прокрутки?
|