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

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

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

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

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

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

12 ответов

62 просмотра

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) }); Не знаю правда сломается ли что-то еще))

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

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

30500 за редактор? )
Владимир
47
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Ребят в СИ можно реализовать ООП?
Николай
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
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
1
Он в одиночку это дело запилил или была какая-то команда?
Aquinary
12
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Всем привет, нужна как никогда, нужна помощь с IO в загрузчике. Пишу в code16 после установки сегментных регистров, пишу вывод символа. Пробовал 2 варианта: # 1 mov $0x0E, %a...
Shadow Akira
14
Карта сайта