PopUp-Window in Bildgröße - Version 1
Ein Klick auf ein Vorschaubild öffnet ein PopUp-Window in passender Größe mit der Großansicht der Grafik. Version 1 mit Übergabe des Bildtitel-Textes
Ganz praktisch: Ein bereits geöffnetes PopUp-Window wird durch einen Linksklick an beliebiger Stelle geschlossen. Sie müsssen nicht das kleine rote Schließen-Symbol ansteuern. Das bedeutet auch, ein Klick auf das nächste Vorschaubild schließt das alte Window, während das neue geöffnet wird! Bei Focusverlust der Seite wird das PopUp-Window ebenfalls automatisch geschlossen. Daraus folgt: Ein aufgerufenes Fenster (wenn es eines gibt) steht immer im Vordergrund. PopUp-Windows verschwinden nicht in der Startleiste.
Das JavaScript
1) übernimmt Angaben für Bildquelle, Bildmaße und Titeltext
2) öffnet ein PopUp-Window in passender Größe
3) wahlweise an fester Position oder in der Bildschirmmitte
4) überwacht einen MouseClick um das Window zu schließen
5) überwacht einen Focusverlust um das Window zu schließen
Wenn sie in einer Bildergalerie mehrere Großansichten nacheinander ansehen möchten, können sie gleich das nächste Bild anklicken! Das gerade angezeigte Fenster wird automatisch geschlossen. Außerdem: Klicken auf das Foto oder Klicken ins 'Leere' schließt das Fenster.
| |

|
Das haben Sie schon immer gesucht !
Vorteile für diese Bilddarstellung
- Bildbeschreibung in der Titelleiste
- Die Bilder werden im passenden Fenster ohne Menü gezeigt
- Die Vorschau-Bilder sind alle sofort zu sehen
- Durch kleine Vorschaubilder schnelle Ladezeiten
- Der Besucher entscheidet selbst welches Bild er groß sehen möchte
- Er kann das Foto so lange ansehen wie er möchte
- Klicken schließt ein aktives PopUp durch onClick() im HTML-Code des Windows.
- Focusverlust schließt ein aktives PopUP durch onBlur() im HTML-Code des Windows
Aufwand
- JavaScript in den Head-Bereich kopieren
- Eintrag für die Fensterposition ändern (wahlweise)
- Aufruf für das Window (Link) im Body notieren
- die 4 Eintragungen im Link anpassen
4 Eintragungen im Aufruf (Link) der JavaScript-Funktion für das Bildfenster
Dem JavaScript werden 4 Parameter übergeben:
a) Bildquelle: Pfad/Dateiname
b) Breite des Bildes in Pixel
c) Höhe des Bildes in Pixel
d) Titeltext für das Window
<a href="javascript:BildFenster01(' a ',' b ',' c ',' d ');"> </a>
Auszug:
<a href="javascript:BildFenster01('foto-gross.jpg','240','180','Text')"
Der Link im Aufruf enthält 4 Informationen: 'welches Bild' , 'wie breit' , 'wie hoch' und 'welcher Text in der Titelleiste des Windows'. Den Rest der Arbeit erledigt das JavaScript.
häufige Fehlerursachen
Die Angaben für die Referenz (href) stehen in (doppelt-gestrichenen) Anführungszeichen. Beginnend mit dem ersten, enden die Angaben mit dem nächsten. Logisch, das zwischen den beiden Anführungszeichen dann keine weiteren (doppelt-gestrichenen) Anführungszeichen stehen dürfen.
Da aber die 4 zu übergebenden Werte ebefalls in Anführungszeichen stehen sollen, verwendet man dazu die eingestrichenen Anführungszeichen Tastenkombination für das Hochkomma: Umschalt + #
|
|
Achten Sie auf die (eingestrichenen) Anführungszeichen !
<a href="javascript:BildFenster01('foto.jpg','240','180','Text')">
kleines Foto
</a>
Pfadangaben
Wenn die Bilder nicht im gleichen Ordner abgelegt sind, sollten sie den Pfad eintragen.
<a href="javascript:BildFenster01('../images/foto.jpg','240','180','Text')">
Eintragungen im Link des Aufrufs:
| Element |
hier im Beispiel |
ersetzen mit |
| Bildquelle |
foto-gross.jpg |
Pfad/Dateiname |
| Breite |
240 |
Wert in Pixel |
| Höhe |
180 |
Wert in Pixel |
| Titeltext |
Text |
ihrem Text |
Positionsbestimmung wahlweise
Sie können das Bildfenster wahlweise an fester Position anzeigen lassen oder durch das Script die Position in der Bildschirmmitte errechnen lassen. Das bestimmen sie selbst. Den Eintrag dazu finden sie im Script:
var FestePosition = "ja";
|
|
Wenn eine feste Position für die Anzeige gewünscht wird, dann tragen sie für die Variable 'FestePosition' ein "ja" ein und legen die X- / Y-Werte für die linke obere Ecke des Bildfensters in den beiden Variablen fest:
VonLinks = 20;
VonOben = 20;
Wenn sie den Eintrag mit "nein" festlegen, versucht das Script die Position zu ermitteln.

Ab hier finden sie lediglich zusätzliche Informationen:

Info zur automatischen Positionsbestimmung
Das PopUp-Window soll bei der automatischen Positionsbestimmung auf dem Bildschirm zentriert angezeigt werden. Dazu werden die Fenstermaße ermittelt. Das geschieht browserabhängig mit unterschiedlichen Anweisungen. Nur reagieren die Browser recht unterschiedlich. Informationen dazu können sie hier einblenden:
|
|
Abweichungen der Anzeigeposition - Info einblenden / ausblenden
Info zur Abweichung der Anzeigeposition
Zur Positionsbestimmung wird die Fenstergröße ermittelt. Diese Werte beziehen sich auf das aktuelle Fenster (blaue Pfeile). Füllt das aktuelle Fenster nicht den gesamten Bildschirm (zum Beispiel in einem Frameset), erscheint das PopUp-Window nicht in der Mitte dieses aktuellen Fensters.
Grund: Ermittelt werden die Fenstermaße im aktuellen Fenster des Frames (gelb). Bei der Positionierung werden die errechneten Werte eingesetzt, die (in diesem Script) als Bezug für die Positionsbestimmung des PopUp-Windows aber die linke obere Ecke des Bildschims annehmen.
Bei einer Seite ohne Frames stimmt zumindest der errechnete X-Wert für eine genaue Anzeige in der horizontalen Bildschirm- und Seitenmitte, da beides identisch ist. Aber auch das trifft nur für ein Browserfenster zu, das maximiert (nicht verkleinert) ist.
Info ausblenden
Hinweis zur Innenhöhe beim IE6 - einblenden / ausblenden
Falls es Probleme gibt
Im IE6 gibts ein Problem bei der Art und Weise der Höhenbestimmung abhängig von der DOCTYPE-Angabe des HTML-Dokuments. Offenbar wird, abhängig von der Deklaration des Dokumenttyps mit DOCTYPE, im IE6 u.U die gesamte Dokumenthöhe ausgelesen, nicht die innere Fensterhöhe. Das würde z.B. hier, bei meinem Dokument 2815 Pixel bedeuten!
Ein Bildfenster, irgendwo bei 1300 Pixel (vom oberen Bildschirmrrand gemessen) angezeigt, wäre nicht sichtbar.
1) Nutzt man diese TYPE-Angabe klappts aber auch mit der alten Programmzeile zur Innenhöhenbestimmung:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
(Sie müssen also nichts abändern)
2) Falls sie im IE6 Probleme haben und sie es bei ihren abweichenden DOCTYPE-Angaben belassen möchten, schafft eine Änderung im Script (Auszug) Abhilfe. Sie ersetzen die durchgestrichene Zeile durch die darunter in blau dargestellte Programmzeile:
else if(ie4) {
sbreite = document.body.clientWidth;
shoehe = document.body.clientHeight;
shoehe = document.documentElement.clientHeight;
alert(shoehe); // Meldung der festgestellten Höhe - als Test
}
Die Zeile mit der alert-Meldung (orange) können sie während des Testens 'einbauen'.
Zitat SELFHTML:
Im Internet Explorer können Sie mit document.body.clientHeight die innere Fensterhöhe bestimmen. Wenn Sie eine Dokumenttyp-Deklaration einsetzen, die im Internet Explorer 6 den Seite standardkonformen Modus auslöst, müssen Sie document.documentElement.clientHeight statt document.body.clientHeight verwenden.
|
Info ausblenden
Update Info
19.03.2007 Hinweis auf Höhenbestimmung bei Problemen im IE6
21.03.2007 Positionsbestimmung fest oder automatisch
Im Laufe der letzten Jahre wurd das Script immer wieder angepasst.
Update-Info
1) Durch einen erneuten Linksklick auf ein anderes Vorschaubild wird ein bereits geöffnetes Bildfenster geschlossen
2) Bei Focusverlust wird das PopUp ebenfalls automatisch geschlossen.
Daraus folgt: Ein aufgerufenes Fenster steht immer im Vordergrund. PopUps verschwinden nicht in der Startleiste.
3) Ärger mit NS 7.x set Focus() ausgeräumt
4) Mozilla meckert nicht mehr (13.07.2004)
5) Für DreamWeaver wurde der String 'JavaScript' zerpflückt, damit er nicht mehr zusammenhängend erscheint und einen vermeintlichen Fehler anzeigt.
6) Der String 'body' wurde 'zerpflückt', damit er nicht mehr zusammenhängend erscheint und einen vermeintlichen Fehler auslöst.
7) 2007 Die Fensterposition kann berechnet oder festgelegt werden.
|
|
|