при зуме происходит еще и скрол.
Прокрутку отслеживаю по onWheel
event.stopPropagation() — делаю на вьюпорте, стэйдже и контейнере, но после загрузки скрол все равно происходит. Однако, если поводить мышкой по вьюпорту и поскролить для зума, все работает как надо и скрол не происходит.
Как это можно победить?
onwheel вы имеете ввиду браузерный ивент или ивент пикси? Вьюпорт — это ваш собственный вьюпорт или pixi-veiwport? Что вы имеете ввиду под скроллом — html страничка скроллится или пикси вьюпорт?
onWheel - браузерный для контейнера (див) и стейджа (@pixi/react), на viewport (pixi-viewport) ивент пикси, скроллится пикси вьюпорт
А зум вы имеете ввиду такое что у вас внутри вьюпорта лежит контейнер, и при wheel над этим контейнером вы хотите его как-то зумить?
У меня во вью лежит кртинка и я ее увеличиваю/уменьшаю при скроле. Функцию уже написал и она работает. Но иногда при скроле происходит прокрутка и картинка поднимается или опускается. Вот пытаюсь это побороть
ну вам тогда нужно на картинке останавливать ивент, чтобы он не шел вверх к вьюпорту
а какая у вас версия пикси?
Ладно я вспомнил почему ломается, пикси вьюпорт слушает wheel ивент на html-канвасе :))))
Так, а есть идеи как это победить? 😅
Можно попробовать перетащить прослушку на пикси ивенты, тогда будет работать stopPropagation() в детях вот этот кусок кода из менеджера ивентов вьюпорта надо выкинуть, типо удалить прослушку с domElement, и добавить прослушку на сам вьюпорт как-то так viewport.options.events.domElement.removeEventListener(viewport.input.wheelFunction); viewport.addEventListener((event) => { viewport.input.wheelFunction(event.nativeEvent) }); Не знаю правда сломается ли что-то еще))
Понял, спасибо, поробую
Обсуждают сегодня