JavaScript  »  Guide  »  Guida MooTools 

Rendere gli elementi "draggabili"



Tra i molti plug-in ufficiali offerti da MooTools Drag e Drag.Move sono sicuramenti tra quelli più utilizzati: nel Web 2.0 le applicazioni che permettono di trascinare e spostare gli elementi di una pagina sono davvero molte.

In questa lezione vedremo come rendere un elemento trascinabile (nel gergo "draggabile") e come impostare alcuni parametri per personalizzare l'effetto, tramite la classe Drag.Move. La superclasse Drag (che trovate documentata qui), a differenza di molte altre superclassi, può essere utilzzata molto efficamente anche da sola, ma per ora limitiamoci a sapere che fornisce i metodi e le proprietà fondamentali necessari al corretto funzionamento di Drag.Move.

Semplicemente "drag"

Rendere un elemento draggabile è molto semplice: basta passare al costruttore Drag.Move l'elemento desiderato ed opzionalmente i parametri di personalizzazione:

// rendi il mio elemento trascinabile e limita i suoi movimenti nell'elemento 'main'
var drag = new Drag.Move('myElement', {
	container: 'mian'
});

In questo semplice esempio, abbiamo reso l'elemento con id myElement trascinabile dall'utente, nei limiti delle dimensioni dell'elemento container con id main. Ecco la demo in azione.

Drag Events

Vediamo ora un esempio più complesso in cui impostiamo gli eventi per gestire meglio la nostra transizione. Tramite onStart, onDrag e onComplete offerti dalla classe Drag, possiamo infatti controllare ogni fase del dragging:

var myDrag = new Drag.Move('myElement', {
	container: 'main',
	onStart: function(el){
		el.set('html', 'Drag Start!');
	},
	onComplete: function(el){
		el.set('html', 'Drag End!').highlight('#ff0000');
	},
	onDrag: function(el){
		el.set('html', 'Drag is working!');
	}
});

Ad ogni determinata fase viene impostato un testo specifico all'elemento. Al completamento del drag, inoltre, viene effetuata una gradevole animazione sul suo colore di sfondo. Potete provare il tutto riunito in questo esempio.

Drag Shortcuts

Esistono due metodi shortctus della classe Element che permettono di rendere i nostri elementi "dimensionabili" e trascinabili utilizzando le funzionalità di Drag e Drag.Move, che prendono rispettivamente i nomi di makeResizable e makeDraggable:

// rendi l'elemento ridimensionabile dall'utente
$('myElement').makeResizable();

// rendi un altro elemento trascinabile tramite Drag.Move
$('myOtherElement').makeDraggable({
	container: 'main'
});

Conclusione

In questa lezione abbiamo studiato le caratteristiche di base offerte dalle classi Drag e Drag.Move per rendere i nostri elementi trascinabili. Ma queste ultime offrono davvero molte funzionalità aggiuntive, come la possibilità di creazione di interfacce drag&drop (è presente un grande supporto per i droppables).

Ultimi articoli JavaScript

PhantomJS, headless browser per test con Javascript

Il tool ideale per realizzare, da terminale, operazioni in remoto su...

Creare e leggere QR Code in JavaScript

Applicazioni 'QR Code enabled' per il Web e per il mobile,...

Jquery UI Map: web-mapping con Google Maps e jQuery

Un plugin di jQuery UI per intefacciare applicaizoni Web/mobile con...

Scrollorama e Scrolldeck, slideshow d'effetto con jQuery

Plugin jQuery per ottenere Slideshow con diversi effetti di scrolling

jCanvas, un primo semplice grafico

Alla scoperta della libreria jCanvas, per semplificare il disegno e...

Altri articoli

Guide JavaScript

Guida Node.js

Il framework che permette di per usare V8, l'interprete JavaScript...

Canvas, guida ai framework

Canvas, tra gli elementi di HTML5 è forse quello di maggior impatto....

Guida Javascript: tecniche avanzate

Una guida dal taglio pratico per approfondire la programmazione a...

Altre guide

Newsletter @JavaScript

Ogni martedì, direttamente nella tua e-mail: guide, articoli, script, novità e approfondimenti tecnici su JavaScript.

Iscriviti alla newsletter

Altre newsletter

Corsi in aula

Corso Webmaster base

18 Giugno 2012 a Milano
Disponibilità: 6 Posti

Corso Google AdWords Base

25 Giugno 2012 a Milano
Disponibilità: 7 Posti

Corso JQuery e Ajax per Webmaster

03 Luglio 2012 a Milano
Disponibilità: 7 Posti

Corso Google AdWords Base

05 Giugno 2012 a Roma
Disponibilità: 7 Posti

Corso Webmaster base

11 Giugno 2012 a Roma
Disponibilità: 7 Posti