Cerca nel blog

Pubblicità

banner-125x125 banner-125x125 banner-125x125 banner-125x125

Feed RSS e Newsletter

Puoi seguire il mio blog abbonandoti al feed RSS, se non sai cos'è un feed RSS prova a guardare questo video... Spiega tutto!

Icona Feed RSS

Twitter

PayPal

Se ti piace questo blog puoi pensare ad una donazione.

Tutti i fondi ricevuti saranno utilizzati per il mio sollazzo personale. :-)

Ultimi commenti...

Napolux: @ Barbara: Sì, dovrei tornare domani :)

Barbara: Che bello ( ma che freddo) ma sei li per lavoro ?

VITO: Il sito dice che accetta pagamenti con carta di credito ,visa e mastercard……… ;….la...

Napolux: @ Davide Salerno: Domanda banale… Dopo i 20 anni IMHO si sfondano… ;)

Davide Salerno: Come sono le svedesi?

Drag & Drop Javascript

martedì 26 settembre 2006
1 Star2 Stars3 Stars4 Stars5 Stars (5 voti, media: 4,40)
Loading ... Loading ...

Per la serie: "Perché non posso usare (roba a caso) nella mia fichissima web application?" La roba a caso di oggi è il drag & drop.

Senza stare a reinventare l'acqua calda e senza usare Script.aculo.us o altre "cosacce" di dubbia comprensione e di pesantezza inaudita, mi permetto di consigliare la libreria di YoungPup.net. Il download è corredato di 6 esempi (presenti anche sul sito), che vi permetteranno di utilizzare subito DOM-Drag.
Perchè proprio DOM-Drag? E' presto detto:

  • E' leggera, circa 100 righe di codice
  • Funziona con qualsiasi browser recente, su Windows, Linux e Mac (cosa non da poco)
  • E' semplice da usare, e si produce subito qualcosa di carino
  • Ha 5 anni, e se una cosa funziona dopo 5 anni è senz'altro un ottimo prodotto. Sì, anche nel web che ci si creda o no...
  • Rispetta gli standard
  • La documentazione è scarna. Vi costringe a lavorarci sopra e a comprenderla pienamente prima di poterci lavorare sfruttando tutte le sue potenzialità. L'esercizio mentale serve sempre
  • E' chic. Chi è contro Script.aculo.us avrà un argomento in più nelle conversazioni tra amici, colleghi e sui forum

Vediamo ora una piccola panoramica, come al solito con esempi liberamente utilizzabili, delle potenzialità di questa libreria.

DRAG & DROP

Il semplice drag & drop di un'oggetto si realizza in pochissimi passi. Basta includere il file JavaScript della libreria, assegnare un id all'elemento da dover "muovere" (deve avere per forza l'attributo CSS position impostato ad "absolute" o "relative") e inizializzare il tutto con la chiamata:

Drag.init(document.getElementById("id oggetto"));

La libreria, in un centinaio di righe di codice si occupa di gestire tutti gli eventi associati all'oggetto che si sta spostando. Possiamo trascinare qualunque oggetto sia dotato di id come ad esempio immagini, campi di moduli, oggetti di liste, elementi div, celle di tabelle, ecc...

Anche in questo caso un esempio vale più di 1000 parole.

E' possibile definire eventi all'inizio del Drag, durante il Drag e alla fine con una sintassi molto semplice, basta dare un'occhiata al secondo esempio.

document.getElementById("id oggetto").onDragStart = function(x,y) { corpo funzione }
document.getElementById("id oggetto").onDragEnd = function(x,y) { corpo funzione }

FINESTRE

Ultimamente va di moda realizzare piccole finestrelle trascinabili all'interno della finestra del browser, basti pensare alla homepage personalizzata di Google, o ad altre pagine simili.

Con Dom-drag creiamo una finestra trascinabile tramite la barra del titolo in poche righe:

Drag.init(document.getElementById("id handler"),document.getElementById("id finestra"));

In questo caso la funzione Drag.Init viene chiamata utilizzando due parametri: il primo si riferisce all'oggetto che funzionerà da maniglia, il secondo è l'id dell'oggetto che verrà spostato. Ovviamente per far sì che tutto funzioni il primo ogetto deve essere incapsulato nel secondo, date un'occhiata al terzo esempio...

CONCLUSIONI

La libreria, per quanto semplice, è davvero utilissima e permette di creare oggetti trascinabili davvero con poco. Scaricatela, capitela ed usatela, non ve ne pentirete!!!

Questo articolo è stato pubblicato martedì, 26 settembre 2006 alle ore 21:28 Se non vuoi perdere nemmeno un articolo del mio blog abbonati al feed RSS. Se non sai cos'è un feed RSS puoi guardare questo video, spiega tutto!

In alternativa puoi abbonarti alla newsletter, riceverai un'email ogni volta che verrà pubblicato un nuovo post. Il tuo indirizzo email sarà gestito da Feedburner.

  

15 Commenti a “Drag & Drop Javascript”

  1. Emanuele scrive:

    Il sito coretto è http://boring.youngpup.net/2001/domdrag/project

  2. stefano scrive:

    ci sono problemi con i form all’interno dei div draggabili

  3. Napolux scrive:

    @Stefano
    Sii più preciso:

    • Quale browser?
    • Quale problema?
    • Hai un esempio da farmi vedere?

    Ti chiedo questo perché sinceramente ho usato il drag&drop anche con moduli e non ho mai avuto problemi…

  4. stefano scrive:

    Mi pare qualcuno l’abbia segnalato anche sul sito ufficiale.
    Ti descrivo la situazione che ho provato: form all’interno del div, con campi text e select.
    Testato con Safari e Firefox; sul primo non si apre la select, su ff il campo di testo è come se fosse disabilitato.
    Non sono andato a fondo nella questione. Magari è una sciocchezza.
    Se risolvo ti faccio sapere.

  5. Napolux scrive:

    Posso dirti che il campo input l’ho utilizzato e funziona . Può essere che abbia utilizzato qualche cavolo di hack, ma funziona. Devo controllare.

    Per la select sinceramente non ho mai provato…

  6. Keep In Tech » Blog Archive » Portlet riposizionabili alla Google: dom-drag.js scrive:

    [...] Per due articoli interessanti sul tema eccovi i link1 e link2 [...]

  7. Whisher scrive:

    Ciao.
    Complimenti per l’oggettino ;)
    Amore a prima vista
    function initLibrary(){
    var target= document.getElementsByTagName(‘div’);
    for(var i=0;i

  8. evelina scrive:

    ciao forse puoi darmi una mano….
    ho da poco creato un blog..
    su blogger..
    ma non riesco a trascinare gli elementi pagina….
    cosa devo fare?
    javascript dev’essere attivato o non c’entra nulla?mhà?
    a presto

  9. Napolux scrive:

    Eh sì, ci vuole JS abilitato ;)

  10. Evelina scrive:

    si ma è attivato!!!
    te ne intendi di linguaggio html?

  11. Luca scrive:

    E’ possibile trascinare un div con all’interno un iframe?
    e se sì, come?
    io ci ho provato ma non trascina….

  12. Alessandro scrive:

    Ciao,
    ho scaricato la libreria che hai consigliato ed è veramente fatta bene :wink:
    Solo che ora ho un altro problema, dato che non sono molto esperto in materia di DRAG AND DROP, mi servirebbe sapere come fare per riconoscere se l’oggetto che ho spostato, è stato spostato in un riquadro giusto. Del tipo, ho un’immagine e due riquadri, l’immagine può essere spostato solo in uno dei due riquadri, come si fa a riconoscere se il riquadro è quello giusto???

  13. LittleHawks scrive:

    Attenzione: se l’elemento da trascinare ha il positionamento espresso in percentuale, viene erroneamente interpretato come posizionamento in pixel!

  14. Wedge scrive:

    Ciao, è possibile sostituire lo sfondo dell’oggetto con un’immagine? se si mi segnali lo script?

  15. Napolux scrive:

    Puoi usare i CSS :)