Issue #2419💬 RespondidoAbierto el 20 de noviembre de 2019por MartinPutzReacciones 1

El modo de arrastre absoluto no funciona en dispositivos táctiles

Respuesta rápidapor wfcheng1

Esto puede estar relacionado o no. He notado que con grapejs v0.16.34 en OSX Safari, el argumento de evento dentro de la función onStart() en 'src/commands/view/ComponentDrag.js' no está definido cuando arrastro un bloque al lienzo, que puede reproducirse con el mismo detalle mencionado antes https://jsfiddle.net/v9ke...

Lee la respuesta completa abajo ↓

Pregunta

El modo de arrastre absoluto (con el plugin touch de grapesjs) no funciona en dispositivos táctiles. GrapesJS versión: 0.15.8

Comportamiento esperado: El usuario también debería poder mover componentes mediante arrastrar y soltar en pantallas táctiles.

Comportamiento actual: El usuario puede arrastrar y soltar un bloque sin problema. Si el usuario quiere mover el componente soltado arrastrándolo, parece que el arrastre se inicia (se ha cambiado el estilo) pero el componente no se mueve.

También puede reproducirse en la demo: https://jsfiddle.net/v9kecdpz/

Pasos para reproducir:

  1. Abrir la demo (incluido jsfiddle con el plugin grapesjs touch)
  2. Arrastra un bloque al lienzo (o usa uno existente)
  3. Intenta mover el componente arrastrando

Probado en: Tableta Android iPad 2019, iOS 13

Se utilizó el navegador Chrome para las pruebas.

Lo más probable es que no sea un problema específico del dispositivo o del sistema operativo. Sospecho que me falta los eventos de contacto.

Respuestas (3)

wfcheng10 de enero de 2021

Esto puede estar relacionado o no. He notado que con grapejs v0.16.34 en OSX Safari, el argumento de evento dentro de la función onStart() en 'src/commands/view/ComponentDrag.js' no está definido cuando arrastro un bloque al lienzo, que puede reproducirse con el mismo detalle mencionado antes https://jsfiddle.net/v9kecdpz/, de nuevo en Safari.

Tuve que parchearlo localmente como abajo (no es el más bonito, pero parece funcionar):

from 'const { x, y } = Canvas.getMouseRelativeCanvas(event);' to 'const { x, y } = Canvas.getMouseRelativeCanvas(event || opts.event);'

pradeeshattlee2 de marzo de 2020

¡Hola @MartinPutz El gestor de activos no aparece en el iPad, ni en el escritorio en dispositivos táctiles: Chrome, Firefox y Safari.

Y el desplazamiento del editor en el lienzo no funciona en el iPhone.

¿Qué me estoy perdiendo?

Gracias de antemano.

MartinPutz7 de marzo de 2020

Hola @pradeeshattlee

Este problema no está realmente relacionado con el gestor de activos, sino con mover los componentes una vez que se renderizan.

Rara vez uso el gestor de activos, pero si no recuerdo mal, también funcionaba perfectamente en iPad. Si fuera tú, abriría un nuevo número con todos los detalles que podrían ser útiles.

Preguntas y respuestas relacionadas

Continúa investigando con debates sobre temas similares.

Plugins de pago que cumplen con este problema

Seleccionado por temas clave y relevancia de etiquetas para ayudarte a enviar más rápido.

Ver todos los plugins

Cargando recomendaciones de plugins de pago...

Opción gratuita

Consulta los plugins de código abierto de GrapesJS en GitHub O haz una búsqueda rápida en nuestro catálogo gratuito.

Explora plugins gratuitos →
Opción premium

Los plugins premium incluyen soporte, actualizaciones regulares y funciones listas para producción — ahorrando días de trabajo de integración.

Explora plugins premium →

Tutoriales relacionados

Guías detalladas sobre el mismo tema.

Todos los tutoriales →

Explorar categorías de plugins

Ve directamente a las páginas de categorías de plugins en el marketplace.