Javascript Und Effekte
Javascript Und Effekte
Javascript
und
Effekte
Studiengang MMA, 1. Semester, Wintersemester 2006/07
DI Brigitte Jellinek
Version 0.8
Mit Javascript kann man einer HTML-Seite interaktive Elemente hinzufügen, und
den Browser auf verschiedene Art steuern.
Java ist Es gibt noch eine zweite Programmiersprache mit sehr ähnlichem Namen: Java.
nicht Javascript Die beiden zu verwechseln ist recht peinlich. Java wird an der FH Salzburg bei
ITS und DTV gelehrt, und an den meisten Universitäten im Informatik-Studium.
Javascript wird Ihnen unter dem Namen Actionscript in Flash wieder begegnen.
Ein Javascript-Programm kann nur Elemente der Webseite und des Web-
browser kontrollieren, sowie neu HTTP-Anfragen an den Webserver schicken.
Sonst nichts. Typische Anwendungen sind:
• Rollover-Bilder – Wenn die Maus über ein Bild bewegt wird, wird dieses
Bild durch ein Neues ersetzt.
• Prüfen auf Plugin, falls das Plugin vorhanden ist wird auf eine neue Web-
seite weitergeleitet.
Das Programmieren von Javascript ist sehr schwierig. Nicht weil die Program-
miersprache schwierig wäre, sondern weil die verschiedenen Browserhersteller
absichtlich unterschiedliche Javascript-Varianten in Ihre Browser einbauen.
Ein Beispiel: um die Breite des Browser-Fensters auszumessen gibt es mehrere
Varianten:
Das DOM einer Webseite kann man sich als Baum vorstellen, so ähnlich wie die
Ordnerstruktur im Dateisystem. So sind in folgendem Beispiel der markierte
<li>-Tag innerhalb des <ol>-Tags, der <li>-Tag enthält wiederum einen <a>-
Tag.
Seite 4 Externe Javascript-Datei
<html>
<body>
<p>Navigation</p>
<h1>Überschrift</h1>
<div class="intro">
<h2>Dies und Das</h2>
<ol>
<li><a href="#bla">erster Link</a></li>
<li><a href="#bla">zweiter Link</a></li>
</ol>
</div> . . .
Wenn man mit Javascript irgendeinen Teil der Webseite verändern will dann
muss man sich diesen Baum vorstellen. Mögliche Veränderungen wären:
• Mache ein beliebiges Element des DOM unsichtbar (z.B. die ganze Liste)
• Ändere den Style eines beliebigen Elements (z.B. die Schriftart der Über-
schrift)
• Füge neue Elemente ein (z.B. drei zusätzliche Listenpunkte nach dem ersten
Listenpunkte einfügen)
Noch mal die Warnung vor veralteten Javascript-Programmen: mit Hilfe der DOM
lassen sich viele Probleme mit kleinen einfachen Programmen lösen, wo man
früher (ohne DOM) lange komplizierte Programme gebraucht hätte. Deswegen
sollten Sie versuchen aktuelle Javascript-Lösungen für Ihre Probleme zu finden.
2 Einstieg in Javascript
Javascript ist sehr eng mit HTML und CSS verzahnt. Wenn Sie also eine beste-
hende Website warten oder verändern sollen müssen Sie mindestens den beste-
henden Javascript-Code erkennen können, um ihn nicht kaputt zu machen –
auch wenn Sie selbst nicht programmieren wollen.
Wird der <script>-Tag auf dieses Weise (mit dem Attribut src) verwendet,
dann darf er keinen Inhalt zwischen <script> und </script> enthalten.
Der <script>-Tag im Body Seite 5
<h1>Selbstzerstörung</h1>
<script>
i=10;
while (i>0) {
document.write("<br>in " + i + " Millisekunden");
i--;
}
</script>
<p><strong>Peng!</strong>
Sie müssen das Programm jetzt noch nicht durchschauen. Wichtig ist an dieser
Stelle nur: zwischen <script> und </script> finden Sie den Javascript-Code.
Javascript hat eine komplett andere Syntax als HTML oder CSS, es ähnelt Pro-
grammiersprachen wie C, C++, PHP, Perl, Java (Strichpunkt/Semikolon am Ende
der Zeile, viele geschwungene Klammern).
Dieses Programm ist übrigens ein gutes Beispiel für ein veraltetes Javascript- Achtung:
Programm. Der Befehl document.write(), der hier für die Ausgabe verwendet document.write()
wird, wurde durch die DOM unnötig. Also: nicht nachahmen. ist veraltet!
Als URL kann man auch ein kleines Javascript-Programm angeben, z.B. bei ei-
nem Link:
Warum funktioniert das nicht? Hier geht es und die Begrenzungen: Das Attribut
href des HTML-Tags begrenzt seinen Wert mit dem doppelten Anführungszei-
chen. Der Javascript-Befehl alert begrenzt den Text den er anzeigen soll auch
mit mit dem doppelten Anführungszeichen. Das führt zur verwirrung
Wenn der Browser diesen Code verarbeitet, sucht er vom ersten Anführungszei-
chen nach dem href= zum nächsten, und findet nur 17 Zeichen, wie im Code
grau hinterlegt.
Ereignis Die Begriffe Ereignis und Event sind Fachbegriffe in der Programmierung: Ein
Event ist etwas was die UserIn tut, und was das Programm wahrnehmen kann.
z.B. die UserIn klickt auf einen Button oder bewegt die Maus über einen be-
stimmten Bereich der Webseite. Wenn man eine grafische Oberfläche pro-
grammiert (egal ob in HTML+Javascript oder in Flash+Actionscript oder in Java)
spricht man von ereignisgesteuerter Programmierung.
<h1>Überraschung</h1>
<form>
<input type="button"
value="Start"
onClick="alert('Ihre Festplatte wurde gelöscht')">
</form>
Ein Button wird angezeigt. Erst wenn der Button gedrückt wird, wird das Event
onClick ausgelöst, und damit das Javascript-Programm gestartet. Es erzeugt
ein Popup-Fenster mit dem Text „Ihre Festplatte wurde gelöscht“ (aber es löscht
nicht wirklich die Festplatte!). Das Popup-Fenster muss erst mit einem Klick auf
den OK-Button geschlossen werden, bevor weitere Arbeit mit dem Browser mög-
lich ist.
Eine vollständige Liste der Events, und eine vollständige Auflistung welcher
HTML-Tag mit welchem Event kombiniert werden kann, finden Sie in selfhtml1.
<head>
<script>
function setcolor( c ) {
b = document.getElementById('farbfeld');
b.style.backgroundColor = c
}
</script>
<body id="farbfeld">
<h1>Farbwahl</h1>
<form>
<input type="button" value="Rot" onClick="setcolor('red')">
<input type="button" value="Grün" onClick="setcolor('#0F0')">
<input type="button" value="Blau" onClick="setcolor('blue')">
</form>
</body>
1
http://de.selfhtml.org/javascript/sprache/eventhandler.htm
Seite 8 Javascript-Programme Beispiele
Man hätte den selben Effekt auch mit folgendem Code erzielen können:
<head>
</head>
<body id="farbfeld">
<h1>Farbwahl ohne Funktion</h1>
<form>
<input type="button" value="Rot"
onClick="b=document.getElementById('farbfeld');
b.style.backgroundColor='red';">
<input type="button" value="Grün"
onClick="b=document.getElementById('farbfeld');
b.style.backgroundColor='#0F0';">
<input type="button" value="Blau"
onClick="b=document.getElementById('farbfeld');
b.style.backgroundColor='blue';">
</form>
Ein Browser-Fenster Das Öffnen eines neuen Browser-Fesnters war das klassische Beispiel für ein
öffnen erstes Javascript-Programm. Seitdem Firefox und Internet Explorer aber „Popup
Blocker“ eingebaut haben ist das Öffnen eines neuen Browser-Fensters oft nicht
möglich.
<a href="javascript:window.open(
'effekte.html','newwindow','width=800,height=400');">pop</a>
1 2 3
Abbildung 1: scriptaculous runterladen(1), auspacken(2),
alle js-Dateien aus dem lib und src-Ordner in den Webspace kopieren(3)
2
http://script.aculo.us/
Javascript-Programme Beispiele Seite 9
In Ihrer Webseite müssen Sie nur drei dieser Dateien als js einbinden:
Danach stehen Ihnen viele Effekte zur Verfügung, die Sie auf div, aber auch auf Nicht mit Tabellen!
andere HTML-Tags anwenden können. Sie funktionieren aber nicht mit Tabellen
oder Tabellen-Zeilen oder Tabellen-Zellen!
Die Effekte Highlight, Pulsate und Shake sind besonders einfach zu verwen- Einfache Effekte
den, hier der Shake als Beispiel:
In der Runden Klammer kann man entweder this schreiben, dann wird der Ef-
fekt direkt auf den HTML-Tag angewandt, dem das Event (hier: onClick) zuge-
hörig ist.
Oder man kann die ID eines HTML-Tags angeben, dieser Tag kann dann auch
„weit weg“ in einem anderen Teil des HTML-Dokuments sein. In folgendem Bei-
spiel werden zwei Bilder in die Webseite eingebunden, wenn man eines anklickt
schüttelt sich das andere:
Achtung: bei der Verwendung von this braucht man keine Anführungszeichen,
bei der Verwendung einer ID schon, und zwar einfache, gerade Anführungszei-
chen. In folgendem Beispiel werden zwei Effekte mit einem Klick ausgelöst, da-
bei werden die beiden verschiedenen Schreibweisen verwendet:
Weitere Effekte aus dieser Gruppe sind: Fold, Puff, Squish, SwitchOff, Grow.
Bei manchen dieser Effekt kann man noch zusätzliche Einstellungen vornehmen. Parameter
Das können Sie im Dokumentations-Wiki von Scriptaculous nachlesen. Z.B. beim
Effekt Pulsate steht dort:
Wie kann man diese Parameter im Code setzen? Hier ein Beispiel:
Dieser Effekt dauert insgesamt 3 Sekunden, pulsiert dabei von 50% Alpha bis
100%, und zwar drei Mal. Achtung: die Kommazahlen für den Alpha-Wert muss
man in der englischen Schreibweise mit Punkt statt Komma angeben!
Effekt-Paare Es gibt drei Effekt-Paare: Appear und Fade, SlideUp und SlideDown, BlindUp und
BlindDown. Mit dem Befehl Effect.toggle kann jeweils man zwischen den
beiden Effekten hin und her schalten.
Was bewirkt dieser Code? Beim ersten Klick wird das ‚fenster’ mit BlindUp ver-
schwinden, beim zweiten Klick mit BlindDown wieder erscheinen, beim dritten
Klick wieder verschwinden, beim nächsten wieder erscheinen, und so weiter.
Drag and Drop Sie können aus jedem HTML-Tag ein „ziehbares“ Element machen. Dabei ver-
wenden Sie nicht das onClick-Event, sondern das onLoad-Event des body:
Der ‚griff’ beim Ziehen ist praktisch falls im gezogenen Element Text steht, da
das Selektieren des Text und das Ziehen mit der Maus zueinander in Konflikt
stehen.
Mit diesem Effekt können Sie ganz einfach ein Puzzle bauen.
Einfache Animation Mit dem Befehl Move können Sie ein Element an eine neue Position auf der Seite
bewegen:
Der Tag mit der ID ‚blume1’ wird um 200 Pixel nach links und um 170 Pixel nach
unten verschoben. Diese Bewegung wird insgesamt 2 Sekunden dauern. Er
zurückgelegte Weg ist 262 Pixel lang, Das gibt eine Geschwindigkeit von 131
Pixel pro Sekunde. Den Zielpunkt weiß man erst, wenn man die Ausgangspositi-
on des Elements mit einberechnet:
#blume1 {
position:absolute;
left:850px;
top:259px;
width:146px;
height:142px;
Verhalten in DW Seite 11
z-index:1;
}
In Abbildung 2 sieht man die im oben gezeigten Code definierte Blume rechts
unten: Sie bewegt sich von (850/259) nach (650/89). (Das Koordinatensystem
des Browsers hat seinen Ursprung links oben, die X-Achse weist nach rechts, die
Y-Achse nach unten.)
2.7 Verhalten in DW
Verhaltensweisen bestehen immer aus zwei Teilen: einem Ereignis, das eine
Aktion auslöst. Die Aktion ist in Wirklichkeit ein kleines Javascript-Programm.
Was kann eine Aktion bewirken?
• Ebenen die schon in der Seite sind ein- oder ausblenden und bewe-
gen
• OnMouseOut = Maus wird von einem Link weg bewegt (ohne Klick)
Soviel zur Theorie. Wie sieht das jetzt praktisch im Dreamweaver aus? In
Abbildung 3 ist ein Link im Dokumentenfenster markiert, es werden also die
Verhaltensweisen dieses einen Links angezeigt. (siehe Titelleiste des Fensters:
„Tag <a>“)
einfügen arbeiten
An diesem Bild sind Aktionen auf zwei Ereignissen „befestigt“: bei onMouseOver
wir die Aktion „Bild austauschen“ ausgelöst, bei onMouseOut die Aktion „Bil-
daustasch wiederherstellen“.
Wenn Sie eine schon vorhandene Aktion verändern, oder auch nur Ihre Details
einsehen wollen, führen Sie einen Doppelklick auf die entsprechende Zeile im
Verhalten-Fenster aus. So sieht z.B. das Fenster der Aktion „Fenster öffnen“ aus:
Nur wenn Sie ein neues Ereignis und eine neue Aktion einfügen wollen betätigen
Sie den Button mit dem Plus in der linken oberen Ecke des Verhalten-Fensters.
Stichwortverzeichnis Seite 13
4 Anhang
4.1 Stichwortverzeichnis
A M
Appear 10 Move 10
B P
Bewegungsvektor 11 Parameter
BlindDown 10 für Effekte 9
BlindUp 10 Puff 9
Pulsate 9
D pulses 10
document.write 5
R
Draggable 10
duration 10 revert 10
E S
Ereignis 6 Shake 9
ereignisgesteuerte Programmierung 6 SlideDown 10
Event 6 SlideUp 10
Squish 9
F SwitchOff 9
Fade 10
T
Fold 9
from 10 to 10
toggle 10
G
V
Grow 9
Vektor 11
H Verhalten 11
handle 10
W
Highlight 9
write 5