Tutorial: "Scheinfenster"

  • Tutorial "Scheinfenster"


    Einleitung
    Hallo, dieses Tutorial soll zeigen, wie man ein Scheinfenster in jede oder eher gesagt über jede Seite macht. Zweck dieses Ganzen ist die Befreiung von fancybox...
    Da mich letztens jemand darauf angesprochen hat und ich es ihm erklären sollte, ist hier jetzt meine Antwort.


    Schritt 1: Hintergrund
    Bei den meisten Seiten ist es so, dass der Rest der Seite abgedunkelt wird. Hierfür kann man sich am Besten mit Gimp oder PS ein transparentes Bild erstellen, welches wie dieses aussehen könnte:
    [attachment=1]<!-- ia1 -->fixarea_bg.png<!-- ia1 -->[/attachment]


    Schritt 2: HTML-Code
    Jetzt müssen wir 2 DIV-Container anlegen. Das sollte dann folgendermaßen aussehen:

    Code
    <div id="window">
    	<div id="page">
    		<!-- Inhalt der Seite -->
    	</div>
    </div>


    Der DIV-Bereich "window" wird einfach nur die komplette Seite füllen und das transparente Hintergundbild haben. Der DIV-Bereich "page" beinhaltet den Inhalt und wird einfach einen weißen Hintergund haben.


    Schritt 2: CSS
    Um nun die letzten beiden Sätze des vorherigen Schrittes umzusetzen, brauchen wir folgenden CSS Code:


    Die Angaben für "page" sind natürlich Dir überlassen.


    Ich hoffe, dieses Tutorial ist hilfreich und lässt auch abwenden von fancybox...


    Das Ergebnis


    [attachment=0]<!-- ia0 -->Unbenannt.PNG<!-- ia0 -->[/attachment]


    Eine kleine Ergänzung
    Um das zu Fenster dynamisch zu öffnen und zu schließen, müsste man Javascript verwenden. Da das hier das falsche Bereich dafür wäre, mache ich es später im richtigen.


    MfG
    Philipp E.

  • Mit CSS3 kann man das ganze auch einfacher realisieren, dann klappt auch das mit dem dynamisch aus- und einklappen.


    Wenn ich dazu ein wenig Zeit finde (spätestens morgen), werd ich das ganze mal als CSS3-Tutorial hier drunter schreiben.


    Ein Beispiel des ganzen: http://soeren-thomas.de/ (unten rechts auf Login klicken).
    Das Fenster ist komplett ohne JavaScript realisiert und funktioniert nicht im IE <= 8.

  • So, dann fang ich mal an:


    Für diese Methode braucht man kein JavaScript, es funktioniert ausschließlich mit CSS3 und dementsprechend nicht in älteren Browsern.
    Der Nachteil ist natürlich, dass auch kein IE8 (IE9 dagegen schon) unterstützt wird und somit viele Besucher quasi ausgeschlossen werden.


    Diese Variante basiert hauptsächlich auf der CSS3 Pseudo-Klasse :target.
    Diese bewirkt, dass, wenn per Link die Id des Elements ausgewählt ist (z.B. wenn die id background ist, wenn in der Url am Ende #background steht), der enthaltene CSS-Code "ausgeführt" wird.



    Der HTML-Code besteht, wie Philipps Variante aus zwei Containern:

    Code
    <div id="background">
        <div>
        <a href="#">Schließen</a>
        <!-- Inhalt des Fensters -->
        </div>
    </div>
    <p><a href="#background">Öffnen</a></p> <!-- Öffnet das Fenster -->


    Der äußere Container ist für den halbdurchsichtigen Hintergrund, wofür keine Grafik benötigt wird und der innere zur Formatierung des eigentlichen Fensters.


    Damit das ganze funktioniert, wird noch ein Link benötigt, welcher das Fenster öffnet (muss als Ziel die id des äußeren Containers haben, z.B. href="#background") und ein Link zum Schließen des Fensters innerhalb des Fensters (mit href="#").



    Der CSS-Code sieht folgendermaßen aus:


    Sollte eigentlich alles ausreichend erklärt sein.



    Das ist erstmal das wichtigste, um das ganze noch hübscher zu gestalten, kann man sich den CSS3-Transitions bedienen und den Einblendvorgang animieren.
    Hierzu sind nur kleine Änderungen am CSS-Code erforderlich, als animierte Eigenschaft wird die Transparenz (opacity) genutzt, das Fenster wird vollständig durchsichtig in die Mitte geschoben und dann eingeblendet.



    Mit dieser Methode kann man schöne Fenster alá fancybox gestalten, ohne irgendetwas mit JavaScript machen zu müssen.
    Wenn ihr Fragen dazu habt, dann scheut euch nicht diese auch zu stellen. :D

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!