169 похожих чатов

Всем привет! Делаю zoom в pixi.js. Столкнулся с тем, что

при зуме происходит еще и скрол.

Прокрутку отслеживаю по onWheel

event.stopPropagation() — делаю на вьюпорте, стэйдже и контейнере, но после загрузки скрол все равно происходит. Однако, если поводить мышкой по вьюпорту и поскролить для зума, все работает как надо и скрол не происходит.

Как это можно победить?

12 ответов

66 просмотров

onwheel вы имеете ввиду браузерный ивент или ивент пикси? Вьюпорт — это ваш собственный вьюпорт или pixi-veiwport? Что вы имеете ввиду под скроллом — html страничка скроллится или пикси вьюпорт?

Михаил- Автор вопроса
Danil Bulanov
onwheel вы имеете ввиду браузерный ивент или ивент...

onWheel - браузерный для контейнера (див) и стейджа (@pixi/react), на viewport (pixi-viewport) ивент пикси, скроллится пикси вьюпорт

Михаил
onWheel - браузерный для контейнера (див) и стейд...

А зум вы имеете ввиду такое что у вас внутри вьюпорта лежит контейнер, и при wheel над этим контейнером вы хотите его как-то зумить?

Михаил- Автор вопроса
Danil Bulanov
А зум вы имеете ввиду такое что у вас внутри вьюпо...

У меня во вью лежит кртинка и я ее увеличиваю/уменьшаю при скроле. Функцию уже написал и она работает. Но иногда при скроле происходит прокрутка и картинка поднимается или опускается. Вот пытаюсь это побороть

Михаил
screenshot У меня во вью лежит кртинка и я ее увеличиваю/умен...

ну вам тогда нужно на картинке останавливать ивент, чтобы он не шел вверх к вьюпорту

Михаил
screenshot Это первое что делаю

а какая у вас версия пикси?

Михаил
7.3.2

Ладно я вспомнил почему ломается, пикси вьюпорт слушает wheel ивент на html-канвасе :))))

Михаил- Автор вопроса
Михаил
Так, а есть идеи как это победить? 😅

Можно попробовать перетащить прослушку на пикси ивенты, тогда будет работать stopPropagation() в детях вот этот кусок кода из менеджера ивентов вьюпорта надо выкинуть, типо удалить прослушку с domElement, и добавить прослушку на сам вьюпорт как-то так viewport.options.events.domElement.removeEventListener(viewport.input.wheelFunction); viewport.addEventListener((event) => { viewport.input.wheelFunction(event.nativeEvent) }); Не знаю правда сломается ли что-то еще))

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта