Моя основная цель - когда пользователь прокручивает страницу вниз, мне нужно получить текущее смещение scrollTop. И пользователь может прокручивать щелчком мыши по полосе прокрутки или колесом мыши, поэтому, когда пользователь делает это, я хочу обновить параметры take()
и skip()
(или page()
) на ejQuery () , чтобы запустить http получить и предоставить данные для этого представления.
Использование SyncFusion 1
Нижеследующий код был моей попыткой присвоить директиву ejTreeGrid , которая наблюдает за событием scroll
через HostListener () , но, как упомянул пользователь PierreDuc, ejTreeGrid реализует свой собственный скроллер, поэтому по умолчанию он не срабатывает. PierreDuc рекомендовал использовать метод getScrollTopOffset
, но мне все равно нужно его запускать каждый раз, когда пользователь выполняет действие прокрутки ...
К компоненту SyncFusion ejTreeGrid прилагается директива для просмотра события scroll
, но она не срабатывает. Все нормально с событием click
- запускается на этом дочернем компоненте. Что может быть не так?
Пробовал:
@HostListener('scrollY', ['$event'])
onScroll(e) {
console.log(e)
}
@HostListener('onscroll', ['$event'])
onScroll2(e) {
console.log(e)
}
@HostListener('scroll', ['$event'])
onScroll3(e) {
console.log(e)
}
@HostListener('scrollX', ['$event'])
onScroll4(e) {
console.log(e)
}
Это работает:
@HostListener('click', ['$event'])
onClick(e) {
console.log('clicked')
console.log(e)
}
Обновление:
Также добавлено:
@HostListener('mousewheel', ['$event'])
onScroll5(e) {
console.log('mousewheel')
}
@HostListener('DOMMouseScroll', ['$event'])
onScroll6(e) {
console.log('DOMMouseScroll')
}
@HostListener('onmousewheel', ['$event'])
onScroll7(e) {
console.log('onmousewheel')
}
и по какой-то причине срабатывает только mousewheel
и только тогда, когда я прокручиваю колесо мыши (очевидно), но только тогда, когда полоса прокрутки находится сверху или снизу. В противном случае он не срабатывает.