JavaScript: Interaktivität hinzufügen
JavaScript ist eine Programmiersprache, die Websites interaktiv macht. Sie können es verwenden, um fast alles zu steuern — Überprüfung von Formulardaten, Schaltflächenfunktionen, Spiel-Logik, dynamische Stile, Animationsupdates und vieles mehr. Dieser Artikel hilft Ihnen, mit JavaScript zu beginnen, und führt Sie durch das Hinzufügen einiger lustiger Funktionen zu Ihrer ersten Website.
| Voraussetzungen: | Grundlegende Vertrautheit mit Ihrem Computerbetriebssystem, der grundlegenden Software, die Sie zum Erstellen einer Website verwenden, und den Dateisystemen. |
|---|---|
| Lernziele: |
|
Was ist JavaScript?
JavaScript ist eine vollwertige Programmiersprache — sie enthält alle klassischen Programmiersprachen-Funktionen, die Sie möglicherweise in anderen Programmiersprachen gesehen haben (oder zumindest davon gehört haben), wie Variablen, Schleifen und Funktionen.
JavaScript funktioniert, wenn es auf Webseiten verwendet wird (obwohl es auch an anderen Orten verwendet werden kann), im Allgemeinen so:
- Es werden Referenzen zu einem oder mehreren Werten wie Zahlen oder zu Elementen auf der Seite abgerufen.
- Es wird etwas mit diesen Werten gemacht, wie das Addieren der Zahlen.
- Ein Ergebnis wird zurückgegeben, das später anderweitig verwendet werden kann. Zum Beispiel möchten Sie möglicherweise die Summe dieser Zahlen auf der Seite anzeigen.
Schauen wir uns ein Beispiel an. Wir verwenden die gleiche grundlegende Liste, die wir in den letzten Artikeln gesehen haben:
<p>Instructions for life:</p>
<ul>
<li>Eat</li>
<li>Sleep</li>
<li>Repeat</li>
</ul>
Wir definieren auch eine CSS-Klasse namens .done, die jedes Element, auf das sie angewendet wird, stilisiert und es wie eine erledigte Aufgabe mit grüner Textfarbe und Durchstreichung erscheinen lässt. Wir werden sie im nächsten Schritt mit JavaScript auf unsere <li>-Elemente anwenden.
.done {
color: darkseagreen;
text-decoration: line-through solid black 2px;
}
Nun zum JavaScript. Hier speichern wir zuerst Referenzen zu den <li>-Elementen in einer Variablen namens listItems. Dann definieren wir eine Funktion namens toggleDone(), die die done-Klasse zu einem Listenelement hinzufügt, wenn es sie noch nicht hat, und die Klasse entfernt, wenn es sie hat. Schließlich gehen wir durch die Listenelemente (mit forEach()) und fügen jedem Listenelement einen Ereignislistener hinzu (mit addEventListener()), sodass die done-Klasse umgeschaltet wird, wenn darauf geklickt wird, und das CSS angewendet wird, das wir zuvor definiert haben.
const listItems = document.querySelectorAll("li");
function toggleDone(e) {
if (!e.target.className) {
e.target.className = "done";
} else {
e.target.className = "";
}
}
listItems.forEach((item) => {
item.addEventListener("click", toggleDone);
});
Machen Sie sich keine Sorgen, wenn Sie das obenstehende JavaScript jetzt noch nicht verstehen. Sich mit JavaScript vertraut zu machen, ist herausfordernder als sich mit HTML und CSS vertraut zu machen, aber die Dinge werden im weiteren Verlauf des Kurses klarer werden.
Dieses Beispiel wird in einem Webbrowser wie folgt dargestellt:
Versuchen Sie, die Listenelemente ein paar Mal anzuklicken, und beachten Sie, wie die "done"-Stile als Ergebnis ein- und ausgeschaltet werden. Nicht schlecht für 11 Zeilen JavaScript.
Eine "Hello world!"-Anleitung
Um Ihnen den Einstieg in das Schreiben von JavaScript zu erleichtern, führen wir Sie durch das Hinzufügen eines Hello world!-Beispiels zu Ihrer Beispiel-Website. (Hello world! ist das Standard-Beispielprogramm zur Einführung in die Programmierung.)
Warnung: Wenn Sie den Rest unseres Kurses nicht verfolgt haben, laden Sie diesen Beispielcode herunter und verwenden Sie ihn als Ausgangspunkt.
-
Erstellen Sie in Ihrem
first-website-Ordner oder dem gerade heruntergeladenen Beispielordner einen neuen Ordner namensscripts. -
Erstellen Sie im Ordner
scriptsein neues Textdokument namensmain.jsund speichern Sie es. -
Gehen Sie zu Ihrer
index.html-Datei und geben Sie diesen Code in einer neuen Zeile kurz vor dem schließenden</head>-Tag ein:html<script async src="scripts/main.js"></script>Dies erfüllt die gleiche Aufgabe wie das
<link>-Element für CSS – es wendet das JavaScript auf die Seite an, sodass es das HTML (zusammen mit dem CSS und allem anderen auf der Seite) beeinflussen kann. -
Fügen Sie diesen Code zu Ihrer
scripts/main.js-Datei hinzu:js// Store a reference to the <h1> in a variable const myHeading = document.querySelector("h1"); // Update the text content of the <h1> myHeading.textContent = "Hello world!"; -
Stellen Sie sicher, dass die HTML- und JavaScript-Dateien gespeichert sind, laden Sie dann
index.htmlin Ihrem Browser. Sie sollten etwas wie dies sehen:

Lassen Sie uns analysieren, wie dieses Beispiel funktioniert.
Wir haben JavaScript verwendet, um den Überschriftstext in Hello world! zu ändern. Wir haben eine Referenz zur Überschrift abgerufen und sie in einer Variablen namens myHeading (ein Container, der einen Wert speichert) gespeichert. Dies ist ähnlich wie das Anwenden von CSS auf Elemente – Sie wählen zuerst die Elemente aus, die Sie beeinflussen möchten, indem Sie einen CSS-Selektor verwenden, und definieren dann die Stile, die Sie für diese Elemente möchten. In beiden Fällen müssen Sie das Element zuerst auswählen, wenn Sie etwas damit machen möchten.
Anschließend setzen wir den Wert der textContent-Eigenschaft der Variablen myHeading (die den Textinhalt des <h1>-Elements darstellt) auf Hello world!.
Die Zeilen, die mit // beginnen, sind JavaScript-Kommentare. Ebenso wie HTML- und CSS-Kommentare ignoriert der Browser diese, sodass Sie Anmerkungen zu Ihrem Code hinzufügen können, um zu erklären, wie er funktioniert.
Lassen Sie uns fortfahren und einige neue Funktionen zu unserer Beispielseite hinzufügen.
Warnung:
Bevor Sie weitermachen, löschen Sie den "Hello world!"-Code aus Ihrer main.js-Datei. Wenn Sie das nicht tun, wird der bestehende Code mit dem neuen Code, den Sie hinzufügen werden, kollidieren.
Hinzufügen eines Bildwechslers
In diesem Abschnitt werden Sie JavaScript und DOM API-Funktionen verwenden, um zwischen zwei Bildern hin- und herzuschalten. Diese Änderung erfolgt, wenn ein Benutzer auf das angezeigte Bild klickt.
-
Wählen Sie ein weiteres Bild, das auf Ihrer Beispielseite dargestellt werden soll. Idealerweise sollte das Bild die gleiche Größe wie das vorher hinzugefügte Bild haben oder so nah wie möglich daran sein.
-
Speichern Sie dieses Bild in Ihrem
images-Ordner. -
Fügen Sie den folgenden JavaScript-Code zu Ihrer
main.js-Datei hinzu und ersetzen Sie dabeifirefox2.pngund beide Instanzen vonfirefox-icon.pngdurch den Namen Ihres zweiten bzw. ersten Bildes.jsconst myImage = document.querySelector("img"); myImage.addEventListener("click", () => { const mySrc = myImage.getAttribute("src"); if (mySrc === "images/firefox-icon.png") { myImage.setAttribute("src", "images/firefox2.png"); } else { myImage.setAttribute("src", "images/firefox-icon.png"); } }); -
Speichern Sie alle Dateien und laden Sie
index.htmlim Browser. Wenn Sie jetzt auf das Bild klicken, sollte es sich in das andere Bild ändern.
In diesem Code haben Sie eine Referenz zu Ihrem <img>-Element in der Variablen myImage gespeichert. Dann haben Sie ihm eine click-Ereignis-Handler-Funktion zugewiesen. Jedes Mal, wenn auf das <img> geklickt wird, führt die Funktion Folgendes durch:
- Ruft den Wert des
src-Attributs des Bildes ab. - Verwendet eine Bedingung (
if...else-Struktur), um zu prüfen, ob dersrc-Wert dem Pfad des ursprünglichen Bildes entspricht:- Wenn ja, ändert der Code den
src-Wert in den Pfad des zweiten Bildes, sodass das andere Bild im<img>-Element geladen wird. - Wenn nicht (das heißt, das Bild wurde bereits geändert), wechselt der
src-Wert zurück zum ursprünglichen Bildpfad.
- Wenn ja, ändert der Code den
Hinweis: Dieser Abschnitt führt einige wichtige Begriffe ein. Schlüsselkonzepte sind:
- API: Eine Reihe von Funktionen, die es einem Entwickler ermöglichen, mit einer Programmierumgebung zu interagieren. Web-APIs (wie die oben verwendeten DOM-API-Funktionen) basieren auf der JavaScript-Sprache und ermöglichen die Manipulation verschiedener Teile des Browsers und der angezeigten Webseiten.
- Ereignisse: Dinge, die im Browser passieren. Sie sind der Schlüssel zur Erstellung interaktiver Websites. Sie können Code als Reaktion auf Ereignisse ausführen, indem Sie Ereignis-Handler-Funktionen verwenden – dies sind Codeblöcke, die ausgeführt werden, wenn ein Ereignis auftritt. Das häufigste Beispiel ist das Klickereignis, das vom Browser ausgelöst wird, wenn ein Benutzer auf etwas klickt.
- Funktionen: Eine Möglichkeit, Code, den Sie wiederverwenden möchten, zu verpacken. Sie können Ihren Code einmal in einer Funktion definieren und dann so oft ausführen, wie Sie möchten, was Ihnen hilft, das gleiche Code-Schreiben immer wieder zu vermeiden. In unserem Beispiel haben wir eine
click-Ereignis-Handler-Funktion definiert, die jedes Mal ausgeführt wird, wenn ein Benutzer auf das Bild klickt. - Bedingungen: Code-Strukturen, die verwendet werden, um zu testen, ob ein Ausdruck
trueoderfalsezurückgibt und unterschiedlichen Code als Reaktion auf jedes Ergebnis auszuführen. Ein sehr gängiges Format von Bedingungen ist dieif...else-Anweisung.
Hinzufügen einer personalisierten Willkommensnachricht
Als Nächstes ändern wir die Seitenüberschrift, um eine personalisierte Willkommensnachricht anzuzeigen, wenn der Benutzer die Seite zum ersten Mal besucht. Diese Willkommensnachricht wird im Browser mithilfe der Web Storage API gespeichert, sodass die personalisierten Daten des Benutzers immer noch vorhanden sind, wenn er die Seite verlässt und später zurückkehrt. Wir werden auch eine Möglichkeit einfügen, damit der Benutzer die Nachricht ändern kann.
-
Fügen Sie in
index.htmlfolgende Zeile kurz vor dem schließenden</body>-Tag hinzu:html<button>Change user</button> -
Fügen Sie in
main.jsden folgenden Code am Ende der Datei ein, genau so wie er geschrieben ist. Dies erstellt Referenzen zu der neuen Schaltfläche und der Überschrift und speichert sie in Variablen:jslet myButton = document.querySelector("button"); let myHeading = document.querySelector("h1"); -
Fügen Sie die folgende Funktion hinzu, um die personalisierte Begrüßung festzulegen. Diese wird noch nichts tun; wir werden die Funktion später aufrufen.
jsfunction setUserName() { const myName = prompt("Please enter your name."); localStorage.setItem("name", myName); myHeading.textContent = `Mozilla is cool, ${myName}`; }Die
setUserName()-Funktion enthält eineprompt()-Funktion, die den Benutzer auffordert, Daten einzugeben und sie in einer Variablen zu speichern, nachdem er auf OK geklickt hat. In diesem Beispiel bitten wir den Benutzer, einen Namen einzugeben und ihn inmyNamezu speichern.Anschließend verwendet der Code die Web Storage API, die es uns ermöglicht, Daten im Browser zu speichern und später abzurufen. Wir verwenden die Funktion
localStorage.setItem(), um ein Datenelement namens"name"zu erstellen und seinen Wert auf die VariablemyNamezu setzen, die die Eingabe des Benutzers enthält.Schließlich setzen wir die
textContent-Eigenschaft der Überschrift auf eine Zeichenfolge, die den gespeicherten Namen des Benutzers enthält. -
Fügen Sie nach der Funktionsdeklaration den folgenden bedingten Block hinzu. Dies ist unser Initialisierungscode – er wird ausgeführt, wenn die Seite zuerst geladen wird, um das Programm zu starten:
jsif (!localStorage.getItem("name")) { setUserName(); } else { const storedName = localStorage.getItem("name"); myHeading.textContent = `Mozilla is cool, ${storedName}`; }Die erste Zeile dieses Blocks verwendet den Negationsoperator (logisches NICHT, dargestellt durch das Zeichen
!), um zu überprüfen, ob das Datenelementnamenicht bereits inlocalStoragegespeichert ist. Falls nicht, wird die FunktionsetUserName()ausgeführt, um es zu erstellen. Wenn es existiert (also der Benutzer bei einem vorherigen Besuch einen Benutzernamen festgelegt hat), rufen wir den gespeicherten Namen mithilfe vonlocalStorage.getItem()ab und setzen dietextContent-Eigenschaft der Überschrift auf eine Zeichenfolge sowie den Namen des Benutzers – genau wie wir es innerhalb vonsetUserName()getan haben. -
Fügen Sie der Schaltfläche eine
click-Ereignis-Handler-Funktion hinzu. Beim Klicken wirdsetUserName()ausgeführt. Dies ermöglicht es dem Benutzer, einen anderen Namen zu speichern, falls er möchte.jsmyButton.addEventListener("click", () => { setUserName(); }); -
Speichern Sie alle Dateien und laden Sie
index.htmlim Browser. Sie werden sofort aufgefordert, Ihren Namen einzugeben. Nachdem Sie das getan haben, erscheint er als Teil des personalisierten Grußes innerhalb des<h1>. Beachten Sie, wie die Personalisierung selbst dann bestehen bleibt, wenn Sie die Seite neu laden. Sie können auf die Schaltfläche "Benutzer ändern" klicken, um einen neuen Namen einzugeben.
Hinweis:
Der Begriff Operator bezieht sich auf ein Zeichen der JavaScript-Sprache, das eine Operation an einem oder mehreren Werten durchführt. Beispiele beinhalten + (addiert Werte), - (subtrahiert einen Wert von einem anderen) und ! (verneint einen Wert – wie Sie zuvor gesehen haben).
Ein Benutzername von null?
Wenn Sie das Beispiel ausführen und das Dialogfeld zum Eingeben Ihres Namens erhalten, versuchen Sie, die Abbrechen zu drücken. Sie sollten mit einem Titel enden, der Mozilla is cool, null lautet. Dies passiert, weil der Wert auf null gesetzt wird, wenn Sie die Eingabeaufforderung abbrechen. In JavaScript ist null ein spezieller Wert, der das Fehlen eines Wertes darstellt.
Versuchen Sie auch, auf OK zu klicken, ohne einen Namen einzugeben. Sie sollten mit einem Titel enden, der Mozilla is cool, lautet, weil Sie myName auf eine leere Zeichenfolge gesetzt haben.
Um diese Probleme zu vermeiden, können Sie eine weitere Bedingung hinzufügen, um zu überprüfen, ob der Benutzer keinen leeren Namen eingegeben hat. Aktualisieren Sie Ihre Funktion setUserName() wie folgt:
function setUserName() {
const myName = prompt("Please enter your name.");
if (!myName) {
setUserName();
} else {
localStorage.setItem("name", myName);
myHeading.textContent = `Mozilla is cool, ${myName}`;
}
}
In menschlicher Sprache bedeutet dies: Wenn myName keinen Wert hat, führen Sie setUserName() erneut von Anfang an aus. Wenn es einen Wert hat (wenn die obige Anweisung nicht wahr ist), speichern Sie den Wert in localStorage und setzen ihn als Text der Überschrift.
Fazit
Wenn Sie alle Anweisungen in diesem Artikel befolgt haben, sollten Sie mit einer Seite enden, die etwa wie das folgende Bild aussieht. Sie können auch unsere Version anzeigen.

Wenn Sie stecken bleiben, können Sie Ihre Arbeit mit unserem fertigen Beispielcode auf GitHub vergleichen.
Wir haben in diesem Artikel wirklich nur an der Oberfläche von JavaScript gekratzt. Sie werden viel mehr in unserem Dynamisches Scripting mit JavaScript Kernmodul später im Kurs lernen.
Siehe auch
- Scrimba: JavaScript lernen MDN Lernpartner
-
Scrimbas JavaScript lernen-Kurs bringt Ihnen JavaScript durch das Lösen von über 140 interaktiven Programmierherausforderungen bei, indem Sie Projekte einschließlich eines Spiels, einer Browsererweiterung und sogar einer mobilen App erstellen. Scrimba bietet unterhaltsame interaktive Lektionen, die von erfahrenen Lehrern gelehrt werden.
- JavaScript lernen
-
Dies ist eine ausgezeichnete Ressource für angehende Webentwickler! Lernen Sie JavaScript in einer interaktiven Umgebung, mit kurzen Lektionen und interaktiven Tests, geleitet durch eine automatisierte Bewertung. Die ersten 40 Lektionen sind kostenlos. Der vollständige Kurs ist gegen eine geringe einmalige Zahlung erhältlich.