Esempio della funzione
(ho impostato che il movimento è vincolato a 200px a sinistra,200 a destra, 200 sotto e 200 sopra, il layer di destinazione calamita il layer trascinato se quest'ultimo viene rilasciato nell'arco di 50px dal centro del layer destinazione)
TOP
LEFT
trascinami
destinazione
QUESTO E' COPIATO DALLA GUIDA DI DREAMWEAVER

Informazioni sui livelli trascinabili

Quando si applica l’azione Trascina livello ad un oggetto, Dreamweaver inserisce la funzione MM_dragLayer() nella sezione head del documento. Oltre a contrassegnare il livello come trascinabile, questa funzione definisce tre proprietà (MM_LEFTRIGHT, MM_UPDOWN e MM_SNAPPED) che possono essere utilizzate nelle funzioni JavaScript personalizzate per determinare la posizione orizzontale relativa e la posizione verticale relativa del livello e per stabilire se il livello ha raggiunto la destinazione di rilascio. Nota: le informazioni fornite di seguito sono indirizzate esclusivamente ai programmatori JavaScript esperti. Ad esempio, la funzione riportata di seguito visualizza il valore della proprietà MM_UPDOWN (la posizione verticale corrente del livello) in un campo di modulo chiamato curPosField. I campi di modulo sono utili per la visualizzazione delle informazioni aggiornate di continuo perché sono dinamici, ovvero è possibile modificarne il contenuto al termine del caricamento della pagina sia in Navigator che in Internet Explorer.

function getPos(layername)
{ var layerRef = MM_findObj(layername);
var curVertPos = layerRef.MM_UPDOWN;
document.tracking.curPosField.value = curVertPos;
}

Invece di visualizzare il valore di MM_UPDOWN o MM_LEFTRIGHT in un campo di modulo, è possibile creare una funzione che visualizzi un messaggio variabile a seconda della distanza dall’area di rilascio o richiamare un’altra funzione che mostri o nasconda un determinato livello a seconda del valore. Le possibilità di utilizzo dei valori di MM_UPDOWN e MM_LEFTRIGHT dipendono solo dall’immaginazione e dalla conoscenza di JavaScript.

La lettura della proprietà MM_SNAPPED è utile soprattutto quando sulla pagina sono presenti più livelli e il visitatore può passare alla pagina o all’attività successiva solo quando tutti i livelli hanno raggiunto la propria destinazione. Ad esempio, è possibile creare una funzione che conti il numero di livelli in cui la proprietà MM_SNAPPED è associata al valore true e richiamare questa funzione ogni volta che si rilascia un livello. Quando il conteggio raggiunge il numero desiderato, è possibile inviare il visitatore alla pagina successiva o visualizzare un messaggio di congratulazioni. Se l’azione

Trascina livello è stata applicata ai collegamenti di più livelli utilizzando l’evento onMouseOver, è necessario apportare una piccola modifica alla funzione MM_dragLayer() per impedire che la proprietà MM_SNAPPED di un livello calamitato venga reimpostata su false quando si passa il cursore su questo livello. Questa situazione può verificarsi, ad esempio, se l’azione Trascina livello è stata utilizzata per creare un puzzle.

Infatti, in questo caso è molto probabile che il visitatore passi sopra i pezzi calamitati mentre posiziona i pezzi mancanti. La funzione MM_dragLayer() non impedisce questo comportamento perché in alcuni casi può rivelarsi utile, ad esempio se si vogliono impostare più destinazioni di rilascio per lo stesso livello. Per impedire la reimpostazione dei livelli calamitati: Creare una copia di backup del documento prima di apportare modifiche al codice.

Questa operazione può essere eseguita nel pannello Sito di Dreamweaver oppure in Esplora risorse (Windows) o nel Finder (Macintosh). Scegliere Modifica > Trova. Selezionare Origine HTML dal menu a comparsa Cerca. Digitare (!curDrag) nel campo di testo adiacente. Fare clic su Successivo. Se viene visualizzata una richiesta di conferma per continuare la ricerca dall’inizio del documento, fare clic su Sì.
Viene trovata la seguente istruzione:
if (!curDrag) return false;
Chiudere la finestra di dialogo Cerca e modificare l’istruzione nel seguente modo nella vista Codice della finestra del documento o nella finestra di ispezione Codice:
if (!curDrag || curDrag.MM_SNAPPED != null) return false;
Le due barrette verticali (||) significano “o” e curDrag è una variabile che rappresenta il livello che viene contrassegnato come trascinabile. Il significato di questa istruzione è il seguente: "se curDrag non è un oggetto o ha già un valore MM_SNAPPED, non eseguire il resto della funzione".