Отключить прокрутку при перетаскивании в приложении мобильного React.jsJavascript

Форум по Javascript
Ответить
Anonymous
 Отключить прокрутку при перетаскивании в приложении мобильного React.js

Сообщение Anonymous »

Я создаю пользовательский календарь в React.js, который имеет функциональность выбора дат. png " /> < /p>
Он отлично работает на рабочем столе. На мобильном телефоне, когда я прикасаюсь к ячейке даты и пытаюсь перетаскивать, экрана начинает прокручивать прокрутку. Но я хочу отключить прокрутку, когда пользователь перетаскивает < /strong>, но также позволил пользователю прокручивать, когда пользователь делает жест прокрутки на прокрутке.
Я уже пытался использовать Touch-Action: нет < /code> в ячейке даты, но она полностью отключает прокрутку.
для вашей информации я использую события указателя для обработки как мыши, так и на касании < /p>
Поэтому я попытался применить Touch-Action: нет динамически, с помощью SetTimeout.

Код: Выделить всё

const isDraggingRef = useRef(false)

const handlePointerDown = (event: React.PointerEvent, date: string) => {

// Initialize drag-related state
dragStartRef.current = date;
dragEndRef.current = date;

// Add pointermove and pointerup listeners globally
document.addEventListener("pointermove", handleMouseMoveGlobal);
document.addEventListener("pointerup", handlePointerUpGlobal);

pointerTimeoutRef.current = setTimeout(() => {
isDraggingRef.current = true;
}, 200); // Adjust the timeout as needed
};
Когда iSdraggingRef true , сенсорный действий: ни один динамически применяется. Но интересно, как только пройдет событие Pointer Down, событие отмены указателя работает (я где -то читал, если свиток не отключен изначально, события По указателю конфликтуют с другими событиями браузера, и события указателя будут отменены), и он не достигает указателя. Вызов события (он содержит логику для установки диапазона на указатель). Таким образом, по мере того, как указатель не называется, диапазон не выбран. br/> Также я узнал, что ontouchstart Если я сделаю event.preventdefault () , он отключит прокрутку. Здесь также мне придется сделать это динамически, так как я хочу, чтобы прокрутка была там, когда пользователь не пытается перетаскивать и выбрать. Но здесь также он не сработал с 1 -й попытки (поскольку PointerCancel работает, как только пройдет указатель вниз, и он никогда не достигает PointerUp. < /P>
Airbnb уже выполнена. сайт


Подробнее здесь: https://stackoverflow.com/questions/793 ... pplication
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»