Attuazione finestre di dialogoCome l'articolo precedente accennato, è possibile utilizzare un elemento div come un blocco di contenuti che simula il comportamento di una finestra di dialogo. In questo articolo si guarda più in particolare ad attuare efficaci le finestre di dialogo nelle moderne applicazioni web. Problema che si desidera implementare efficaci le finestre di dialogo in applicazioni web. Theory Il titolo di questo articolo mostra le parole "le finestre di dialogo" tra virgolette, perché l'elemento div non è un vera finestra di dialogo. Invece, si è limitato ai confini della pagina HTML. In genere, è possibile posizionare le finestre di dialogo reale ovunque sullo schermo del computer. Real finestre di dialogo non sono di interesse in questo articolo. Ciò che è di interesse è come creare una HTML finestra di dialogo "." Ad esempio, quando si scrivono le pagine HTML, è possibile utilizzare le finestre di dialogo per tutta una serie di cose, come
• Per fornire informazioni metadati associati a un hotspot in una pagina HTML • Per richiedere informazioni supplementari quando si compila un modulo o l'elaborazione di un flusso di lavoro • Menu • Per comportarsi come un icona di aspettare È inoltre possibile utilizzare le finestre popup per indicare fallimenti; finestre popup appaiono diversi da finestre di dialogo, ma la tecnica utilizzata per la loro creazione è identico. Solution Due cose devono accadere, al fine di rendere un elemento div comportarsi come un finestra di dialogo. In primo luogo, è necessario inserire l'elemento DIV nella pagina HTML usando le coordinate assolute. In secondo luogo, è necessario effettuare l'elemento div a conoscenza del movimento del mouse. L'esempio seguente posti due elementi div 100 pixel da sinistra e 100 pixel dalla parte superiore della finestra del browser client. Fonte: / website / ROOT / articles AJAX / DHTML / divdialogessentials.html Il codice di esempio HTML contiene due elementi div, uno annidato dentro l'altro. Ignorare l'attributo di classe, dato che è utilizzato per colorare gli elementi div. Invece, guardare da vicino l'attributo di stile, che ha tre caratteristiche: a sinistra, in alto, e la posizione. La proprietà posizione e il valore assoluto che indica il posizionamento dell'elemento utilizza coordinate assolute. Le coordinate assolute della sinistra angolo in alto a mano sono fornite dalla proprietà e in alto a sinistra, rispettivamente. La larghezza e l'altezza, che indicano la larghezza e di alta l'elemento div sarà, risultano mancanti. Quando queste proprietà sono mancanti, il browser calcola dinamicamente la larghezza e l'altezza. Nell'esempio di codice HTML, un elemento div è incapsulata all'interno di altri. Entrambi gli elementi div sono collocati 100 pixel dalla parte superiore e 100 pixel da sinistra. A prima vista, le coordinate assolute potrebbe indicare che entrambi gli elementi div si trovano nella stessa posizione. Tuttavia, questo non è ciò che il browser visualizza. I due elementi div non sono in cima a vicenda, ma uno è relativo agli altri. Che è un po 'sconcertante, la posizione attributo è impostato in assoluto, quindi le coordinate deve essere assoluta. La vera domanda è: "Qual è in assoluto?" Ad esempio, hai bisogno di calcolare tutte le coordinate assolute per quanto riguarda l'elemento padre? Immaginate se un elemento div che non è posizionato con coordinate assolute contiene un elemento div che è posizionato con coordinate assolute. Che coordina sarebbe l'impiego confinato elemento div? La risposta è che sarebbe utilizzare l'ultimo elemento che si sia posizionato: in termini assoluti o position: relative (posizione: inherit è il default). In questo modo si ottiene il posizionamento assoluto all'interno di posizionamento relativo. Utilizzando le coordinate rende possibile avere un elemento div appaiono e visualizzare le proprie informazioni, come una finestra di dialogo. Si potrebbe aggiungere funzionalità in cui un link nella finestra di "dialogo" che nascondere la finestra di dialogo popup. Per essere in grado di sapere dove fare una finestra di dialogo visualizzata, è necessario acquisire il messaggio onclick e la trasformazione. Il seguente codice sorgente rende un elemento div in cui gli utenti fanno clic appaiono sullo schermo. L'elemento div contiene un link che viene utilizzato per nascondere l'elemento div. Fonte: / website / ROOT / articles AJAX / DHTML / clickappeardiv.html Nella pagina di esempio HTML, il corpo è un unico elemento div, che non viene visualizzato quando la pagina HTML viene caricata. L'unico elemento div è l'elemento div che sarà collocato da qualche parte nella pagina HTML quando il mouse viene cliccato. Si noti la larghezza, l'altezza, la posizione e le proprietà sono assegnati nella dichiarazione dell'elemento div. Queste proprietà sono impostazioni predefinite che possono essere impostate in fase di progettazione, riducendo così la quantità di codice è necessario definire quando si visualizzano l'elemento div. L'esempio di codice contiene due funzioni: DisplayDiv e HideDiv. La funzione DisplayDiv è usata per indicare l'elemento div. La funzione HideDiv è usato per nascondere l'elemento div. Il gestore body.onclick chiama la funzione DisplayDiv. L'elemento corpo è utilizzato perché le bolle onclick evento verso l'alto da figlio a genitore, e l'elemento div dovrebbe essere messo da qualche parte nella pagina HTML che viene visualizzato. La funzione HideDiv è chiamata cliccando sul link che viene visualizzato quando l'elemento div viene visualizzato. Quando il caricamento della pagina HTML, gli utenti sono presentati con uno schermo vuoto. Quando si clicca in qualsiasi punto dello schermo, l'elemento corpo cattura l'evento click e passa l'evento alla funzione DisplayDiv. Per l'attuazione del DisplayDiv, il evt oggetto evento viene analizzato utilizzando una sola riga. L'unica linea è necessaria per la compatibilità cross-browser. Una volta che l'oggetto completo dell'evento è stato recuperato e assegnato alla evt, si presume che un evento del mouse è stato inviato. Un browser-inviato evento del mouse ha le proprietà clientX e clientY, che contengono le coordinate del click nel contesto della pagina HTML. Le coordinate posizione l'elemento div utilizzando le proprietà style.left e style.top. Dopo l'elemento div è stato posizionato, si visualizza utilizzando il style.display proprietà. È possibile nascondere l'elemento div cliccando sul link Hide me, che poi i risultati in una pagina HTML vuota. La visualizzazione e nascondere l'elemento div è abbastanza elementare, ma c'è un gotcha nascosto. Se un elemento div utilizza coordinate assolute e viene incapsulato all'interno di un altro elemento div che utilizza le coordinate assolute, quindi impostando le coordinate si tradurrà in un elemento posizionato in modo errato. Questo accade perché gli usi evento click coordinate relative al browser, e la incapsulato è utilizzato l'elemento div coordinate relative all'elemento padre. Per ovviare a questo problema, è necessario fare riferimento a diverse proprietà, come il seguente riscritto funzione DisplayDiv illustra: DisplayDiv function (evt) (evt = (evt)? evt: ((evento)? evento: null); if (evt.layerX) ( x = evt.layerX; y = evt.layerY; ) else if (evt.offsetX) ( x = evt.offsetX; y = evt.offsetY; )var element = document.getElementById ( "display"); element.style.left = x; element.style.top = y; element.style.display = "block";) Il codice in grassetto rappresenta il codice utilizzato per trovare le coordinate della manifestazione clicca rispetto al elemento che viene cliccato. Il codice ha due prove per l'esistenza di una layerX o offsetX. Se layerX esiste, allora stai usando aMozilla-browser compatibili, e se offsetX esiste, allora si sta utilizzando Microsoft Internet Explorer. Questo codice modifica opererà in situazioni semplici, ma non è affidabile, perché le coordinate sono relative alla elemento che viene cliccato. Ad esempio, se si dispone di un elemento div incapsulati all'interno di un elemento div incapsulati all'interno di un elemento div, e si fa clic su l'elemento centrale div, le coordinate relative saranno sbagliate. In poche parole, una volta che si inizia a utilizzare le coordinate assolute all'interno degli elementi che sono posizionato con coordinate assolute, stai andando ad avere problemi per capire la situazione reale. Invece, l'uso clientX e clientY, e calcolare le coordinate assolute degli elementi HTML utilizzando una iterazione ricorsiva. La possibilità di visualizzare gli elementi div dove gli utenti fanno clic consente di implementare il menu di funzionalità di tipo. È possibile implementare errori di visualizzazione e di altri gestori di messaggi informativi che devono essere posizionati. L'unica cosa che non si può fare è mostrare aMessage o le funzionalità che è possibile trascinare in un'altra posizione nella pagina HTML. Per fare questo, la soluzione più semplice è quello di attuare il mouse-down, mouse-move, mouse-up e di eventi. Sembra semplice, ma richiede un po 'di lavoro extra per farlo con fermezza. Per cominciare, non è possibile utilizzare l'evento onclick, perché questo evento viene inviato quando il pulsante del mouse viene rilasciato. Per implementare una operazione di trascinamento, è necessario acquisire l'onmousedown, onmousemove, e gli eventi onMouseUp. Il resto di questo articolo utilizza una soluzione precanned, perché un bel alcuni dettagli sono coinvolti, ed è possibile applicare questa soluzione di base in molteplici contesti. La soluzione è quella di utilizzare un file dal sito AWeb chiamato Dynamic Drive (o, dom-drag.js ), 4, che richiede solo agli utenti di specificare quale sia l'elemento HTML dovrebbe essere trascinabile. La dom-drag.js applicazione gestisce tutte le inferiore del mouse livello di dettagli evento, fai clic. La barra degli strumenti è riconosciuta come un punto di accesso utilizzato per trascinare l'elemento div all'interno della pagina HTML. Non è necessario definire un elemento div, utilizzando la notazione tradizionale finestra di dialogo. Il codice HTML riportato di seguito, mostra come si può definire un elemento div come un hotspot:
Avviso codice del layout quanto e codice di script esiste. Il codice del layout oltrepassa il codice dello script, che è quello che molto probabilmente accadrà nel tuo implementazioni finestra di dialogo. Con il DOM-drag.js soluzione, il vostro obiettivo primario è il valore aggiunto in termini di look and feel. La dom-drag.js soluzione non richiede l'uso di un elemento div, come si potrebbe avere creato un elemento trascinabile tabella. Ricordate le seguenti cose in sede di attuazione delle finestre di dialogo: • Per implementare una finestra di dialogo in HTML, usare coordinate assolute; cima proprietà, a sinistra, e la visualizzazione, e onclick o onmousedown, onmousemove, e gli eventi del mouse onMouseUp. • In caso di applicazione delle finestre di dialogo, si sta andando ad essere di fronte a due problemi principali: ottenere il diritto di coordinate, e assicurandosi l'elemento che genera l'evento ha qualche relazione con l'elemento che verrà manipolato. Ad esempio, non si desidera un menu a comparire in alto a destra angolo mano quando in basso a sinistra si clicca. Questo comportamento si può confondere gli utenti. • drag delegato Always-and-drop per un'altra libreria. Questo articolo è utilizzato il dom-drag.js soluzione, ma un sacco di altre soluzioni abbondano, e siete invitati a provarli. un articolo presentato da Sonja Lande Disclaimer:Il nostro sito non è responsabile per il contenuto di questo articolo. Webarticles è una risorsa gratuita di informazioni. Importante: Questo articolo è "Attuare le finestre di dialogo" è stato tradotto da un software automatico. Ci dispiace per eventuali errori di ortografia che possono essersi verificati. Grazie per la vostra comprensione.
|
|||||
| Online: 334 users browsing the articles directory |
|
|