Umsetzung DialogfelderWie die vorherigen Artikel angedeutet, können Sie ein div-Element als Content-Block, der das Verhalten eines Dialogfelds imitiert. Dieser Artikel sieht insbesondere bei der Umsetzung von effektiven Dialogfelder in modernen Web-Anwendungen. Problem Sie wollen den Dialogfeldern in Web-Anwendungen zu implementieren. Theory Der Titel dieses Artikels zeigt die Worte "Dialoge" in Anführungszeichen, weil das div-Element ist kein true Dialogfeld. Stattdessen ist es, die Grenzen der HTML-Seite beschränkt. In der Regel können Sie echte Dialogfelder an einem beliebigen Ort auf dem Bildschirm. Real Dialogfelder nicht von Interesse sind in diesem Artikel. Was ist von Interesse ist, wie man ein HTML-Dialogfeld "zu schaffen." Zum Beispiel beim Schreiben von HTML-Seiten, können Sie Dialogfelder für eine ganze Reihe von Dingen, wie zum Beispiel
• Um die Meta-Informationen mit einem Hotspot auf einer HTML-Seite verbundene Dienstleistungen zu erbringen • Für zusätzliche Informationen beim Ausfüllen eines Formulars oder Bearbeitung eines Workflow-fragen • Menüs • Um als Symbol warten Sie können auch mit Popup-Fenstern zu Ausfällen zeigen, verhalten, Popup-Fenster sehen anders aus Dialogboxen, aber die Technik zur Erstellung von ihnen identisch ist. Solution Zwei Dinge passieren muss, damit ein div-Element wie ein verhalten Dialogfeld. Zunächst müssen Sie das div-Element auf der HTML-Seite mit absoluten Koordinaten. Zweitens müssen Sie sicherstellen, das div-Element bekannt Mausbewegung. Das folgende Beispiel stellt zwei div-Elemente 100 Pixel vom linken und 100 Pixel vom oberen Rand des Client-Browser-Fenster. Quelle: / website / ROOT / Ajax / DHTML / divdialogessentials.html Das Beispiel HTML-Code enthält zwei div-Elemente, eine verschachtelte in den anderen. Ignorieren Sie die class-Attribut, wie es verwendet wird, um die div-Elemente Farbe. Stattdessen genau hinsehen, um das style-Attribut, das drei Eigenschaften: has left, top, und die Position. Die Position Eigentum und den absoluten Wert anzugeben, dass die Positionierung des Elements verwendet absoluten Koordinaten. Die absolute Koordinaten der oberen linken Ecke werden von den oben angegebenen Eigenschaften und links. Die Breite und Höhe, die angibt, wie breit und hoch das div-Element wird, fehlen. Wenn diese Eigenschaften fehlen, wird der Browser berechnet dynamisch die Breite und Höhe. In den HTML-Code beispielsweise ein div-Element ist in den anderen gekapselt. Sowohl der div-Elemente platziert 100 Pixel vom oberen und 100 Pixel von der linken Seite. Auf den ersten Blick, koordiniert die absolute würde bedeuten, dass sowohl div-Elemente an der gleichen Stelle befinden. Dies ist jedoch nicht das, was in den Browser. Die beiden div-Elemente sind nicht auf der jeweils anderen, sondern ist ein relativ zu den anderen. Das ist ein bisschen verwirrend, das Attribut ist die absolute Position gesetzt, so dass die Koordinaten sollte absolut. Die eigentliche Frage lautet: "Was ist absolut?" Zum Beispiel müssen Sie alle absoluten Koordinaten zu berechnen im Hinblick auf das übergeordnete Element? Stellen Sie sich vor einem div-Element, das nicht positioniert ist, mit absoluten Koordinaten enthält einen div-Element, das ist positioniert, mit absoluten Koordinaten. Welches wäre die enthaltenen div-Element Koordinaten verwenden? Die Antwort ist, dass es das letzte Element, die entweder positioniert ist: Verwenden Sie würde die absolute oder position: relative (Position: inherit ist die Standardeinstellung). Dies ist, wie Sie die absolute Positionierung innerhalb der relativen Positionierung zu erhalten. Mit Koordinaten macht es möglich, ein div-Element angezeigt und zeigt seinen Informationen wie ein Dialogfenster. Sie können Funktionen hinzufügen, wenn ein Link in der "Dialog" würde das Popup-Dialogfeld zu verstecken. Um in der Lage sein zu wissen, wo, um einen Dialog zu angezeigt wird, müssen Sie die Nachricht onclick erfassen und verarbeiten. Der folgende Quelltext ist ein div-Element erscheinen, wenn Nutzer auf dem Bildschirm das div-Element. enthält einen Link, der verwendet wird, um das div-Element zu verbergen. Quelle: / website / ROOT / Ajax / DHTML / clickappeardiv.html In dem Beispiel HTML-Seite, der Körper ist ein einziges div-Element, das nicht angezeigt wird, wenn die HTML-Seite geladen wird. Die einzelnen div-Element ist das div-Element, das irgendwo in der HTML-Seite platziert wird, wenn mit der Maus angeklickt wird. Beachten Sie die Breite, Höhe, Position und Eigenschaften sind in der Erklärung des div-Element zugeordnet. Diese Eigenschaften sind Standardwerte, die Sie zur Design-Zeit eingestellt, wodurch sich das Volumen der Code, den Sie definieren müssen, um die Anzeige des div-Elements. Das Codebeispiel enthält zwei Funktionen: DisplayDiv und HideDiv. Die Funktion DisplayDiv wird verwendet, um das div-Element zu zeigen. Die Funktion HideDiv wird verwendet, um das div-Element zu verbergen. Die body.onclick Handler ruft die Funktion DisplayDiv. Das body-Element wird verwendet, weil das Ereignis onClick Blasen steigen vom Kind zum Elternteil, und das div-Element sollte irgendwo auf die angezeigte HTML-Seite platziert werden. Die Funktion HideDiv wird durch Klicken auf den Link, der angezeigt wird, wenn das div-Element angezeigt wird aufgerufen. Wenn die HTML-Seite geladen wird, werden die Benutzer mit einem leeren Bildschirm dargestellt. Wenn sie auf eine beliebige Stelle auf dem Bildschirm, fängt die body-Element das Click-Ereignis ein und leitet die Veranstaltung, um die Funktion DisplayDiv. Bei der Durchführung des DisplayDiv, ist das Event-Objekt evt getestet mit einer einzigen Zeile. Die Zeile ist erforderlich für Cross-Browser-Kompatibilität. Sobald die komplette Event-Objekt abgerufen worden ist und eine entsprechende Zuteilung evt wird davon ausgegangen, dass ein Maus-Event gesendet wird. Ein Browser-sent Maus-Event hat die Eigenschaften clientX und clientY, die die Koordinaten des Klick im Rahmen der HTML-Seite. Die Koordinaten Position des div-Element mit dem style.left und style.top Eigenschaften. Nach dem div-Element positioniert hat, Displaytechnik Sie es mit der Eigenschaft style.display. Sie können die div-Element durch Klicken auf den Link mich verstecken, verbergen, die ergibt sich dann in eine leere HTML-Seite. Die Anzeige und Verstecken des div-Element ist ziemlich elementar, aber es ist eine versteckte gotcha. Wenn ein div Element verwendet absoluten Koordinaten und ist in einem anderen div-Element, das absolute Koordinaten verwendet gekapselt, dann Festlegung der Koordinaten werden in einem falsch positionierten Elements führen. Dies geschieht, weil das Click-Ereignis verwendet Koordinaten bezogen auf den Browser, und die gekapselte div Element verwendet Koordinaten bezogen auf das übergeordnete Element. Um dieses Problem zu beheben, benötigen Sie den Verweis unterschiedlichen Eigenschaften, wie die folgenden DisplayDiv Funktion umgeschrieben illustriert: Funktion DisplayDiv (evt) (evt = (evt)? evt: ((event)? Veranstaltung: 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";) Die fett-Code ist der Code verwendet, um die Koordinaten des Klick-Ereignis bezogen auf das Element angeklickt wird. Der Code besteht aus zwei Tests für die Existenz der layerX oder offsetX. Wenn layerX besteht, so you're using AMozilla-kompatiblen Browser, und wenn offsetX existiert, dann Sie Microsoft Internet Explorer. Dieses geänderte Code wird in einfachen Situationen arbeiten, aber es ist nicht zuverlässig, da die Koordinaten sind bezogen auf den Element angeklickt wird. Zum Beispiel, wenn Sie ein div-Element innerhalb eines div-Element in einem div-Element eingekapselt eingekapselt haben, und klicken Sie auf der mittleren div-Element, die relative Koordinaten sind falsch. Auf den Punkt gebracht, sobald Sie beginnen mit absoluten Koordinaten, innerhalb Elemente, die positioniert, mit absoluten Koordinaten, wirst du Probleme herauszufinden, die tatsächliche Position haben. Verwenden Sie stattdessen clientX und clientY, und berechnet den absoluten Koordinaten der HTML-Elemente mit einer rekursiven Iteration. Die Fähigkeit, div-Elemente angezeigt werden, wo die Benutzer auf können Sie im Menü-type-Funktionalität zu implementieren. Sie können Fehler-Display-Handler und andere informative Meldungen umzusetzen, die es zu positionieren. Das einzige was Sie nicht können, ist Anzeige amessage oder Funktionen, die Sie ziehen, um eine andere Position auf der HTML-Seite. Um dies zu erreichen, ist die einfachste Lösung, um die Maus-down-, Maus-Bewegung umzusetzen und Maus-Events. Das klingt einfach, aber es erfordert einiges an zusätzlicher Arbeit zu tun robust. Zunächst einmal können Sie nicht das Ereignis onClick verwendet, da dieses Ereignis wird gesendet, wenn die Maustaste losgelassen wird. Um einen Betrieb ziehen zu implementieren, müssen Sie die onmousedown, onmousemove erfassen und onmouseup Veranstaltungen. Der Rest dieses Artikels wird ein precanned Lösung, weil nicht wenige Details beteiligt sind, und Sie können diese Basis-Lösung in mehreren Kontexten anzuwenden. Die Lösung ist eine Datei von AWeb Website namens Dynamic Drive (oder dom-drag.js Nutzung ), 4, benötigt nur Anwender festlegen, welche HTML-Element ziehbar sein sollte. Die dom-drag.js Umsetzung kümmert sich um alle von der unteren Ebene Mausklick Eventdetails. Die Symbolleiste wird als Hotspot verwendet, um die div-Element, um die HTML-Seite ziehen anerkannt. Es ist nicht notwendig, ein div-Element mit der herkömmlichen Dialogfeld Notation zu definieren. Die folgenden HTML-Code, zeigt, wie man ein div-Element als Hotspot definiert werden können:
Beachten Sie, wie viel Layout-Code und Script-Code besteht. Das Layout Code zahlenmäßig überlegen den Script-Code, das ist das, was am meisten in Ihrem Dialogfeld Implementierungen wahrscheinlich passieren. Mit der dom-drag.js Lösung ist Ihr Hauptaugenmerk auf die Wertschöpfung in Bezug auf Aussehen und fühlen. Die dom-drag.js Lösung erfordert nicht mit einem div-Element, wie Sie ein verschiebbares Element könnte Tabelle erstellt haben. Denken Sie daran, die folgenden Dinge bei der Umsetzung Dialogfelder: • Um ein Dialogfenster, in HTML zu implementieren, verwenden absoluten Koordinaten, die Eigenschaften oben, links, und zeigen, und onclick oder onmousedown, onmousemove und onmouseup Maus-Events. • Bei der Umsetzung Dialogfelder, wirst du mit zwei großen Problemen konfrontiert werden: mit den richtigen Koordinaten, und sicherstellen, dass das Element, das Feuer der Veranstaltung hat eine Beziehung zu dem Element, das manipuliert wird. Zum Beispiel, Sie wollen nicht, ein Menü in der oberen rechten Ecke angezeigt, wenn der linken unteren Ecke geklickt wird. Dieses Verhalten kann verwirren die Nutzer. • Immer delegieren Drag-and-Drop-Funktionalität an eine andere Bibliothek. Dieser Artikel verwendet die dom-drag.js Lösung, aber viele andere Lösungen Überfluss, und Sie beraten, um sie auszuprobieren. Ein Artikel eingereicht von Sonja Lande Disclaimer:Unsere Website ist nicht verantwortlich für den Inhalt dieses Artikels. Webarticles ist eine kostenlose Informationsquelle. Wichtig: Dieser Artikel "Implementing Dialogfelder" wurde durch ein automatisches Software übersetzt. Wir fühlen uns leid für alle Rechtschreibfehler, die möglicherweise aufgetreten sind. Vielen Dank für Ihr Verständnis.
|
|||||
| Online: 427 users browsing the articles directory |
|
|