DE .NET, SQLSERVER Y MÁS, APRENDE CONMIGO!✔

Desarrollo de todo tipo de aplicaciones y Administración de Base de datos con Tecnología Microsoft


UNETE

API Drag and Drop

0

 



Arrastrar y soltar en la web

Arrastrar un elemento desde un lugar y luego soltarlo en otro es algo que hacemos todo el tiempo en aplicaciones de escritorio, pero ni siquiera imaginamos hacerlo en la web. Esto no es debido a que las aplicaciones web son diferentes sino porque desarrolladores nunca contaron con una tecnología estándar disponible para ofrecer esta herramienta.

Ahora, gracias a la API Drag and Drop, introducida por la especificación HTML5, finalmente tenemos la oportunidad de crear software para la web que se comportará exactamente como las aplicaciones de escritorio que usamos desde siempre.

Uno de los más importantes aspectos de esta API es un conjunto de siete nuevos eventos introducidos para informar sobre cada una de las situaciones involucradas en el proceso. Algunos de estos eventos son disparados por la fuente (el elemento que es arrastrado) y otros son disparados por el destino (el elemento en el cual el elemento arrastrado será soltado). Por ejemplo, cuando el usuario realiza una operación de arrastrar y soltar, el elemento origen (el que es arrastrado) dispara estos tres eventos:

dragstart Este evento es disparado en el momento en el que el arrastre comienza. Los datos asociados con el elemento origen son definidos en este momento en el sistema.

drag Este evento es similar al evento mousemove, excepto que será disparado durante una operación de arrastre por el elemento origen.

dragend Cuando la operación de arrastrar y soltar finaliza (sea la operación exitosa o no) este evento es disparado por el elemento origen.

Y estos son los eventos disparados por el elemento destino (donde el origen será soltado) durante la operación:

dragenter Cuando el puntero del ratón entra dentro del área ocupada por los posibles elementos destino durante una operación de arrastrar y soltar, este evento es disparado.

drop Cuando el elemento origen es soltado durante una operación de arrastrar y soltar, este evento es disparado por el elemento destino.

dragleave Este evento es disparado cuando el ratón sale del área ocupada por un elemento durante una operación de arrastrar y soltar. Este evento es generalmente usado junto con dragenter para mostrar una ayuda visual al usuario que le permita identificar el elemento destino (donde soltar).

Antes de trabajar con esta nueva herramienta, existe un aspecto importante que debemos considerar. Los navegadores realizan acciones por defecto durante una operación de arrastrar y soltar.

Para obtener el resultado que queremos, necesitamos prevenir en algunas ocasiones este comportamiento por defecto y personalizar las reacciones del navegador. Para algunos eventos, como dragenter, dragover y drop, la prevención es necesaria, incluso cuando una acción personalizada ya fue especificada.

DEMOSTRACIÓN

En el espacio de nombre del proyecto damos click derecho y seleccionamos Add à New Items


En la siguiente ventana seleccionamos la Opción “Pagina HTML” y colocamos como nombre del archivo “Dragrable.html”, para luego presionar el botón Add.


Empezamos escribiendo en el cuerpo del documento <BODY></BODY>, lo siguiente:


Los eventos que se utilizan para este ejemplo son:

onDrop: Se activa cuando se deja de pulsar el botón del ratón tras una operación de arrastre.

onDragOver: Se activa cuando el usuario arrastra un objeto a un objetivo válido para alojarlo; es similar al evento precedente pero es activado después de aquél.

onDragStart: Evento que se activa en cuanto el usuario inicia a arrastrar un objeto.

En el Encabezado de nuestra página <HEAD></HEAD>, vamos a escribir el título correspondiente:


PreventDefault() Se utiliza para detener una acción por omisión.

El objeto DataTransfer es usado como contenedor de datos que están siendo manipulados durante la operación de drag and drop.

setData(tipo, dato) Este método es usado para declarar los datos a ser enviados y su tipo. El método puede recibir tipos de datos regulares (como text/plain, text/html o text/uri-list), tipos de datos especiales (como URL o Text) o incluso tipos de datos personalizados. Un método setData() debe ser llamado por cada tipo de datos que queremos enviar en la misma operación.

getData(tipo) Este método retorna los datos enviados por el origen, pero solo del tipo especificado.

clearData() Este método remueve los datos del tipo especificado.

Target Hace referencia al objeto que envió el evento.

appendChild Agrega un nuevo nodo al final de la lista de un elemento hijo de un elemento padre especificado.

Y al desplegar nuestra página web:


Veremos el efecto de arrastar y soltar.












Tal vez te interesen estas entradas

No hay comentarios