Hola.
Hoy vamos a ver un pequeño tutorial que nos
permita ver un poco por encima como trabajar con objetos “Drag&Drop” usando las librerías que
JQuery nos proporciona.
Para ello, lo primero que vamos a hacer es
crear un proyecto vacío en el que hacer nuestras
pruebas.
Una vez creado el proyecto y agregada nuestra
página vacía, agregaremos al proyecto los scripts de jquery y jquery-ui que
vamos a necesitar. Para ello podemos descargarlos directamente de la página de
JQuery o bien instalarlos mediante Nuget.
Con los scripts agregados, lo siguiente que
haremos es agregar la referencia a nuestra página de
pruebas.
<head runat="server">
<title></title>
<script type="text/javascript" src="Scripts/jquery-1.7.2.min.js"></script>
<script type="text/javascript" src="Scripts/jquery-ui-1.8.20.min.js"></script>
</head>
|
Ya tenemos nuestra página lista para ser
desarrollada.
Vamos a crear dos “div”, uno que
representara el objeto que vamos a arrastrar y otro que es la zona donde vamos a
depositar el div arrastrado. Dentro de
cada div vamos a poner una etiqueta que usaremos para mostrar diferentes
mensajes.
<div id="dragable1" class="div_dragable" style="height: 100px; width: 100px; background-color: #B5B5FF;
border: 1px
solid #7272A0; left: 100px;">
<label
id="etiqueta_drag" />
</div>
<div id="dropable" style="border: 1px solid #824F8E;
background-color: #EA8EFF; width: 300px; height: 250px; top: 300px; left: 400px;">
<label
id="etiqueta_drop" />
</div>
|
Le damos un poco de forma a los “div”
definiendo en su style (también podéis ponerlo en un fichero
css).
Bueno ya tenemos nuestro entorno de pruebas
preparado. Vamos a trabajar.
Lo primero que haremos al cargar la página es
declarar nuestro div “dragable” por medio del siguiente
código
<head runat="server">
<title></title>
<script type="text/javascript" src="Scripts/jquery-1.7.2.min.js"></script>
<script type="text/javascript" src="Scripts/jquery-ui-1.8.20.min.js"></script>
<script type="text/javascript">
$(document).ready(function () {
$('div#dragable1').draggable();
}
);
</script>
</head>
|
Ya podemos arrastrar nuestro div por toda la
pantalla….a que es fácil.
Ahora vamos a experimentar un poco con los
eventos que tenemos disponibles sobre los objetos
“draggable”.
Básicamente nos centraremos en los siguientes tres
eventos
-
start(dragstart) à Se lanza en el momento en que iniciamos la acción de arrastrar un elemento “draggable”.
-
dragà Se lanza mientras estamos arrastrando un elemento “draggable”
-
stop(dragstop) à Se lanza en el momento en que dejamos de arrastrar un elemento “draggable”.
A continuación vamos a ver como implementamos
estos eventos.
Para ello vamos a modificar el código en el que
declarábamos nuestro div
“draggable”:
<script type="text/javascript">
$(document).ready(function () {
$('div#dragable1').draggable();
$('div#dragable1')
.bind('dragstart', function (event) {
if
(!$(event.target).is('.div_dragable')) return false;
$(this).css('background-color',
'#FFF07F');
$('label#etiqueta_drag').text('Drag
start.');
})
.bind('drag', function (event) {
$(this).css('box-shadow', '10px 10px 10px #080808');
$('label#etiqueta_drag').text('Dragging.');
})
.bind('dragstop', function (event) {
$(this).css('box-shadow', '0px 0px 0px #080808');
$(this).css('background-color',
'#7BFF47');
$('label#etiqueta_drag').text('Drag ends.');
});
}
);
</script>
|
Además hemos implementado el evento
“drag”, para que mientras estamos arrastrando el div este se muestro
con un efecto de sombreado.
Finalmente hemos implementado el evento
“dragstop” para quitar el efecto de sombra y volver a cambiar el color
de div.
Además de estos efectos, en cada evento hemos
modificado el texto de la etiqueta del div, para tener más claro en qué
orden se ejecutan los eventos.
Ya para finalizar, vamos a agregar información
al elemento arrastrable
Ahora vamos a ver cómo trabajar con los
elementos que permites soltar elementos.
Al igual que hicimos con el div
“draggable”, vamos a declarar el segundo div como
“droppable”.
$('div#droppable').droppable();
|
Vamos a ver algunos de los eventos que podemos
implementar sobre objetos
“droppable”.
-
drop à Este evento se lanza en el momento en que soltamos un elemento sobre el elemento “droppable”.
-
out(dropout) à Este evento se lanza mientras se esté arrastrando un elemento y ese se encuentre fuera de la zona del elemento “droppable”.
-
over(dropover) à Este evento se lanza mientras se está arrastrando un elemento y este se encuentra sobre la zona del elemento “droppable”.
Ahora que ya hemos visto los eventos, vamos a
implementar el siguiente código
$('#dropable')
.bind('drop', function () {
$('#etiqueta_drop').text('Elemento
soltado.');
})
.bind('dropout', function () {
$('#etiqueta_drop').text('Elemento fuera de div
droppable.');
})
.bind('dropover', function () {
$('#etiqueta_drop').text('Elemento sobre div
droppable.');
});
|
Podeis descargaros el proyecto desde el siguiente
enlace:
Hasta aquí este pequeño tutorial de
“Drag&Drop” usando JQuery.
Espero que os haya resultado
útil.
No hay comentarios:
Publicar un comentario