Windows 7 Fenster mit CSS3 und jQuery - Tutorial Teil 2

psd zu html | codingpeople - webdesign trifft html - 20% Rabatt für alle Neukunden

Windows 7 Fenster mit CSS3 und jQuery - Tutorial Teil 2Windows 7 Fenster mit CSS3 und jQuery - Schön euch auch beim zweiten Teil des Windows 7 Fenster Tutorials willkommen zu heißen! Die heutige Fortsetzung knüpft nahtlos an den ersten aus HTML- und CSS-Angaben bestehenden gestrigen Teil an. Nach dem das Interfacedesign eines Windows 7 Fensters im Firefox "Look & Feel" im gestrigen ersten Teil nachempfunden wurde, wird im heutigen zweiten Teil JavaScript bzw. das Plugin jQuery (UI) die Hauptrolle in diesem Tutorial-2-Teiler spielen. Hierbei wird insbesondere auf eine mögliche Änderung der Fenstergröße ( resizable ) und -position ( draggable ) durch den Anwender eingegangen.

Ist-Stand nach Tutorial Teil 1

Für diejenigen die den ersten Teil dieses Tutorial-2-Teilers nicht gelesen haben, zeigt die folgende Abbildung den momentanen Stand der Dinge.

Windows 7 Fenster inklusive Content
Windows 7 Fenster inklusive Content - Ist-Stand nach Tutorial Teil 1

Step 1 - Anlegen und Referenzieren auf JavaScript-Dateien

Da wir zum aktuellen Zeitpunkt zwar ein Windows 7 Fenster entsprechend der "Designvorgaben" umgesetzt haben, aber noch keinerlei "Bewegung" möglich ist, werden als erstes die dafür notwendigen JavaScript-Dateien als Ressourcen ( aktuelle jQuery & jQuery-UI - Zeilen 4 bis 6 ) für die noch anstehenden Anforderung, dem bereits vorhandenem HTML-Code aus Tutorial 1 hinzugefügt. In der zum Schluss angegebenen JavaScript-Datei windows7.js ( Zeile 7 ) werden die für unsere Anforderungen entsprechenden Funktionen ( Step 3 bis 4 ) definiert.

Code-Beispiel
...
<title>Windows 7 mit CSS3 und jQuery</title>
...
<script type="text/javascript"
src="http://ajax.microsoft.com/ajax/jquery/jquery-1.4.2.min.js"></script> <script type="text/javascript" src="../js/jquery-ui- 1.7.2.min.js"></script>
<script type="text/javascript" src="../js/windows7.js"></script>
</head>
<body>
...

Step 2 - Draggable - Verschiebung

Damit das Windows 7 Fenster nicht nur visuell gesehen wie eines aussieht, sondern sich auch wie ein Windows 7 Fenster bewegt ( draggable ) und vergrößert bzw. verkleinert ( resizable ) werden kann, muss folgender Code in der Datei windows7.js angelegt werden. Dieser Code bewirkt, dass das bereits eingebundene jQuery UI Modul Dragging angesprochen und ausgeführt wird.

JavaScript - Draggable
$(function() {
  $(".fenster").draggable({
    cancel: '.inhalt',
    containment: 'body',
    scroll: false,
    stack: { group: '.fenster', min: 1 }
  });
});

Kurze Erklärung, dessen was hier abläuft:

  1. Zeile 2 - alle Elemente der Klasse fenster können verschoben werden
  2. Zeile 3 - Elemente der Klasse inhalt können nicht zum Verschieben genutzt werden
  3. Zeile 4 - Elemente können nicht über das body-Tag hinaus verschoben werden
  4. Zeile 5 - keine Scrollbalken, wenn ein Fenster aus dem body-Tag geschoben wird
  5. Zeile 6 - stack bewirkt, dass jeweils das gerade aktive Fenster in den Vordergrund gerückt wird, ist erst bei mehr als einem Fenster interessant

Windows 7 Fenster - Draggable dank jQuery UI
Windows 7 Fenster - Draggable dank jQuery UI

Damit könnt ihr das Fenster jetzt anpacken und umher schieben.

Step 3 - Resizeable - Größenänderung

Das letzte Feature fehlt noch, die dynamische Änderung der Fenstergröße. Gleich unterhalb des Dragging-Codes innerhalb der windows7.js wird deshalb folgender JavaScript-Code angelegt.

JavaScript - Resizeable
$(function() {
  $(".fenster").resizable({
    handles: 'n, e, s, w, ne, se, sw, nw',
    containment: 'body',
    minHeight: 80,
    minWidth: 138,
    maxHeight: $(window).height(),
    maxWidth: $(window).width()
  });
});

Damit springt nun auch das Resizable Modul an.

  1. Zeile 2 - alle Elemente der Klasse fenster können in ihrer Größe verändert werden
  2. Zeile 3 - handles gibt an, an welchen Ecken und Kanten der Fenster Elemente hinzugefügt werden sollen, die zur Größenänderung benötigt werden
  3. Zeile 4 - Elemente können nicht über das body-Tag hinaus vergrößert werden
  4. Zeile 5 bis 6 - minHeight und minWidth legen die minimale Höhe bzw. Breite fest
  5. Zeile 7 bis 8 - maxHeight und maxWidth legen die maximale Höhe bzw. Breite fest ( hier gleich dem Viewport des Browsers )

Windows 7 Fenster - Resizable dank jQuery UI
Windows 7 Fenster - Resizable dank jQuery UI

Step 4 - Resizeable Features designed by CSS

Eine Kleinigkeit fehlt allerdings noch: Die Elemente, die durch handles hinzugefügt werden wie bspw. der Resizeable-Cursor etc., müssen noch via CSS gestylt werden. Für jQuery UI gibt es Themes, die das natürlich schon beinhalten. Für unser Einsteiger-Beispiel soll erst einmal folgender Code, der in die style.css geschrieben werden muss, ausreichen:

CSS-Code - Resizeable
.ui-resizable-handle {display:block;position:absolute;}
.ui-resizable-disabled .ui-resizable-handle,
.ui-resizable-autohide .ui-resizable-handle {display:none;}
.ui-resizable-n,.ui-resizable-s {height:7px;left:0;width:100%;}
.ui-resizable-n {cursor:n-resize;top:-5px;}
.ui-resizable-s {bottom:-5px;cursor:s-resize;}
.ui-resizable-e,.ui-resizable-w {height:100%;top:0;width:7px;}
.ui-resizable-e {cursor:e-resize;right:-5px;}
.ui-resizable-w {cursor:w-resize;left:-5px;}
.ui-resizable-se,.ui-resizable-sw,
.ui-resizable-nw,.ui-resizable-ne {height:12px;width:12px;}
.ui-resizable-se {bottom:0;cursor:se-resize;right:0;}
.ui-resizable-sw {bottom:0;cursor:sw-resize;left:0;}
.ui-resizable-nw {cursor:nw-resize;left:0;top:0;}
.ui-resizable-ne {cursor:ne-resize;right:0;top:0;}

Windows 7 Fenster in verschiedenen Fenstergrößen
Windows 7 Fenster in verschiedenen Fenstergrößen

Demo

Nun wären wir dann auch schon am Ende, ab jetzt ist eure Phantasie gefragt. Die strikte Trennung von Inhalt und Layout erlaubt es euch auch andere Themes zu erstellen, wie wäre es z.B. mit Fenster im Windows 2000 oder Mac OSX Style? Oder mehrere Fenster auf einmal? Wer von Euch bei der Umsetzung der zwei Tutorials alles alles richtig gemacht hat, der dürfte folgende Darstellung eines Windows 7 Fensters haben:

View Tutorial Demo

Auf meinem Blog habe ich eine Demo gebaut, die das Ganze auch noch etwas weiter treibt: Aero Peek, Fenster maximieren oder schließen, Taskbar und Startmenü, um nur einige Punkte zu nennen. Ich hoffe, dass ich euch einiges mit auf den Weg geben konnte, besonders über CSS3, wie nützlich es ist und wie es in Zukunft den Design-Alltag erleichtern wird.

Download

Auf Norman's Blog erhaltet ihr im übrigen auch das Endergebnis dieser kleinen Tutorial-Serie als ZIP zum Download.

Autor: Verfasst hat diesen zweiten Teil dieser kleinen Tutorial-Serie mit dem Thema "Windows 7 mit CSS3 und jQuery" der Gast-Blogger Norman Paschke, den wir über diesem Wege auf dem Webstandard-Blog herzlich willkommen heißen. Norman studiert Angewandte Informatik an der Technischen Universität Chemnitz und hat Anfang 2009 Norman's Blog ins Leben gerufen, in dem er sich inhaltlich den Themen "Web und Webdesign" verschrieben hat und hierzu neben Tutorials auch aktuelle Trends und Entwicklungen, wie bspw. auf dem Browsermarkt, aufgreift.

Werde auch du Gastautor im Webstandardblog!

Um Themengebiete wie diese, für die sich die Leser interessieren anbieten zu können, möchten wir über diesem Wege weiterhin anderen Bloggern die Möglichkeit geben, ihr Fachwissen mit unseren Lesern teilen zu können. Voraussetzung ist lediglich, dass sich diese Artikel in den vorhanden Kategorien unseres Blogs untergebracht werden können und der jeweilige Autor über entsprechendes Fachwissen verfügt.

Ähnliche Artikel zu diesem Thema:

Online Usability Tests in 24 Stunden - 39€ pro Test!

  1. Franka 24 Mär 2010, 10:47

    Bisher hatte ich mich mit JavaScript noch nicht sonderlich stark auseinandergesetzt, aber die hier vorgestellte Herangehensweise ( Nutzung von jQuery UI ) bringt mich dann doch wirklich zum Überlegen. Einfacher kann man es aus Anwendersicht wirklich kaum haben.

    Danke für diesen interessanten und zumindest für mich auch lehrreichen 2-Teiler!


  2. Paul 24 Mär 2010, 14:26

    Als ich den ersten Teil gelesen habe, dachte ich die JavaScript-Handhabung für die angekündigten Features ( resizable & draggable ) würden aufwändiger werden. Die paar Zeilen JS verstehe sogar ich noch ;o)


  3. Ralf
    24 Mär 2010, 18:12

    Wie immer ein hervoragender Artikel. Weiter so!
    Davon ab finde ich es immer wieder spannend was man mit ein bisschen Inspiration aus jQuery so alles rausholen kann. Für mich auch eindeutig der Beleg dafür, das jQuery das beste JS Framework auf dem Markt ist. Danke.


  4. Feuerspucker 26 Mär 2010, 10:31

    Hallo,
    ist wirklich ein gelungener Beitrag. Ich bin ja nun wirklich kein Programmier-Profi, aber diese Schritte konnte ich sehr leicht nachvollziehen und das Ergebnis stimmt gleich beim ersten Versuch. Super... Werd mich jetzt mal mit jQuery mehr beschäftigen scheint ja garn ich so schwierig zu sein.


  5. Klaus 04 Mai 2010, 17:54

    Man sollte beachten, dass im aktuellen JQuery sich die Syntax von dem Draggable-Modul verändert hat...

    es ist nicht mehr

    stack: { group: '.fenster', min: 1 }

    sondern nur noch

    stack: '.fenster'


  6. T A 08 Aug 2010, 15:02

    Toller Beitrag mach weiter so.

    Gruß aus KS


  7. Christian 11 Jan 2011, 17:50

    Hallo zusammen,

    auf folgender Website gibt es Windows for jQuery. Das sind Fenster im Windows Stil, die interaktiv sind. Sogar mit Desktop und Icons:

    http://www.soyos.net/tl_files/demos/Windows-7-UI-and-Windows-Aero-for-Websites/


  8. Robin 06 Jun 2011, 14:21

    Wen ich 2 Fenster habe, dan zuckt das ganz schön beim verschieben der Fenster, wie könnt ich dies lösen?

    Danke schonmal.


Artikel kommentieren





XHTML ist erlaubt und ausdrücklich erwünscht, wobei folgende Tags eingesetzt werden können: <a href="" title=""> <abbr title=""> <b> <cite> <code> <em> <i> <strike> <strong>


authimage

Modernes Webdesign mit CSS - Das neue Buch!