clase:daw:diw:2eval:tema09
Diferencias
Muestra las diferencias entre dos versiones de la página.
| clase:daw:diw:2eval:tema09 [2025/11/03 11:37] – creado - editor externo 127.0.0.1 | clase:daw:diw:2eval:tema09 [2026/10/23 23:04] (actual) – Reorganización del módulo: contenido movido a las páginas nuevas de clase:daw:diw claude | ||
|---|---|---|---|
| Línea 1: | Línea 1: | ||
| - | ====== 9. Drag & Drop ====== | ||
| - | El drag & drop es una forma de simplificar los interfaces de usuario. | ||
| - | |||
| - | |||
| - | En el drag & drop siempre hay 2 elementos HTML que son: | ||
| - | * El elemento que se arrastra | ||
| - | * El elemento donde se suelta | ||
| - | |||
| - | Respecto a los eventos , hay 3 eventos en un drag & drop: | ||
| - | * '' | ||
| - | * '' | ||
| - | * '' | ||
| - | |||
| - | Por último está: | ||
| - | * La propiedad '' | ||
| - | * El objeto de JavaScript '' | ||
| - | |||
| - | Mas información: | ||
| - | * [[http:// | ||
| - | * [[https:// | ||
| - | * [[http:// | ||
| - | |||
| - | ===== API ===== | ||
| - | Para explicar como funciona drag & drop, vamos a usar el siguiente ejemplo | ||
| - | |||
| - | <sxh html> | ||
| - | < | ||
| - | < | ||
| - | < | ||
| - | < | ||
| - | .destino { | ||
| - | width: 350px; | ||
| - | height: 70px; | ||
| - | border: 1px solid #aaaaaa; | ||
| - | } | ||
| - | </ | ||
| - | < | ||
| - | |||
| - | function onDragStart(ev) { | ||
| - | var element=ev.target; | ||
| - | var data=element.innerText; | ||
| - | |||
| - | ev.dataTransfer.setData(" | ||
| - | } | ||
| - | |||
| - | |||
| - | function onDrop(ev) { | ||
| - | ev.preventDefault(); | ||
| - | |||
| - | var element=ev.target; | ||
| - | var data = ev.dataTransfer.getData(" | ||
| - | |||
| - | |||
| - | element.innerText=data; | ||
| - | } | ||
| - | | ||
| - | function onDragOver(ev) { | ||
| - | ev.preventDefault(); | ||
| - | } | ||
| - | </ | ||
| - | </ | ||
| - | < | ||
| - | |||
| - | < | ||
| - | <p class=" | ||
| - | |||
| - | <ul> | ||
| - | <li draggable=" | ||
| - | <li draggable=" | ||
| - | <li draggable=" | ||
| - | <li draggable=" | ||
| - | </ul> | ||
| - | |||
| - | </ | ||
| - | </ | ||
| - | </ | ||
| - | |||
| - | * Atributo '' | ||
| - | * Evento '' | ||
| - | * '' | ||
| - | * '' | ||
| - | * Evento '' | ||
| - | * Evento '' | ||
| - | * '' | ||
| - | * '' | ||
| - | |||
| - | ===== dataTransfer ===== | ||
| - | El objeto '' | ||
| - | |||
| - | |||
| - | Para guardar el dato, se usa: | ||
| - | ev.dataTransfer.setData(" | ||
| - | Para obtener el dato, se usa: | ||
| - | var data = ev.dataTransfer.getData(" | ||
| - | | ||
| - | | ||
| - | Sin embargo , podemos pensar que no es muy útil ya que se podría usar directamente una variable de JavaScript. En ese caso vamos a usar una variable global llamada '' | ||
| - | |||
| - | <sxh javascript> | ||
| - | var dragData=""; | ||
| - | |||
| - | function onDragOver(ev) { | ||
| - | ev.preventDefault(); | ||
| - | } | ||
| - | |||
| - | function onDragStart(ev) { | ||
| - | var element=ev.target; | ||
| - | dragData=element.innerText; | ||
| - | } | ||
| - | |||
| - | function onDrop(ev) { | ||
| - | ev.preventDefault(); | ||
| - | |||
| - | var element=ev.target; | ||
| - | |||
| - | element.innerText=dragData; | ||
| - | } | ||
| - | </ | ||
| - | |||
| - | |||
| - | ¿cual es la diferencia entre usar '' | ||
| - | |||
| - | Sin embargo la ventaja de usar la variable es que podemos almacenar mas cosas que un simple texto. | ||
| - | |||
| - | |||
| - | |||
| - | ===== Ejercicios ===== | ||
| - | |||
| - | ==== Ejercicio 1 ==== | ||
| - | En base al ejemplo del tema, prueba a arrastrar el texto a otra aplicación como el Bloc de Notas de Windows. ¿Ha funcionado? | ||
| - | |||
| - | Ahora modifica el ejemplo y en vez de usar '' | ||
| - | |||
| - | |||
| - | ==== Ejercicio 2 ==== | ||
| - | En base al ejemplo del tema, modifica que en vez de guardarse el texto del elemento, se guarde un JSON similar al siguiente: | ||
| - | <sxh json> | ||
| - | { | ||
| - | color: "# | ||
| - | texto: "Disco duro" | ||
| - | } | ||
| - | </ | ||
| - | |||
| - | Y al soltar que en el elemento ''< | ||
| - | |||
| - | |||
| - | ==== Ejercicio 3 ==== | ||
| - | Haz un programa similar al siguiente: | ||
| - | |||
| - | {{: | ||
| - | |||
| - | De forma que: | ||
| - | * Al arrastrar el icono de " | ||
| - | * Al arrastrar el icono de " | ||
| - | * Al arrastrar el icono de "Nº de Vuelos Despegados" | ||
| - | * Al arrastrar el icono de "Nº de Vuelos Aterrizados" | ||
| - | |||
| - | Ademas, cambiar todo el aspecto visual para que "quede bonito" | ||
| - | |||
| - | |||
clase/daw/diw/2eval/tema09.1762166239.txt.gz · Última modificación: por 127.0.0.1
