HTML-Tutorium: SVG: Hello World 02
Dieser Artikel erfüllt die GlossarWiki-Qualitätsanforderungen:
Korrektheit: 4 (großteils überprüft) |
Umfang: 4 (unwichtige Fakten fehlen) |
Quellenangaben: 5 (vollständig vorhanden) |
Quellenarten: 5 (ausgezeichnet) |
Konformität: 4 (sehr gut) |
HTML-Tutorium Hello World: JavaScript | Canvas | SVG
Ergebnis: hallo.html
(SVN-Repositories: Pendant zu Teil 2 des Canvas-Tutoriums, Pendant zu Teil 3, Pendant zu Teil 4)
HTML5: Hello-<name>-Anwendung mit Raphaël (SVG)
Die in HTML-Tutorium: SVG: Hello World 01 erstellte Hello-World-Anwendung wird so umgeschrieben,
dass ein Benutzer seinen Namen eingeben kann und er nach Klick auf den OK
-Button mit seinem Namen
begrüßt wird.
Gehen Sie bei der Erweiterung der SVG-Hello-World-Anwendung genauso vor, wie bei der Erweiterung der Canvas-Hello-World-Anwendung. Das heißt, befolgen Sie die Anweisungen der Tutorien
- HTML5-Tutorium:_Canvas:_Hello_World_02,
- HTML5-Tutorium:_Canvas:_Hello_World_03 und
- HTML5-Tutorium:_Canvas:_Hello_World_04,
ersetzen dabei aber jedes Mal den Canvas-Code durch einen äquivalenten SVG-Code.
Wenn Sie beim Erzeugen des SVG-Codes Probleme haben sollten, können Sie in den SVG-Musterlösungen spicken:
- Pendant zu Teil 1 des Canvas-Tutoriums
- Pendant zu Teil 2 des Canvas-Tutoriums
- Pendant zu Teil 3 des Canvas-Tutoriums
- Pendant zu Teil 4 des Canvas-Tutoriums
Ein kleiner Optimierungstipp
Die Größe des Canvas muss nur an einer Stelle festgelegt werden, bei der Erzeugung des Canvas-Objektes:
v_canvas = document.getElementById("d_canvas");
v_canvas.width = 300;
v_canvas.height = 27;
In Raphaël muss die Größe dagegen an zwei Stellen angegeben werden. Bei der Erzeugung der Bühne
v_canvas = new Raphael("d_canvas", 300, 27);
sowie in einer CSS-Datei (z.B. bei der Festlegung des Layouts der Umrandung ):
#d_canvas
{
width: 300px;
height: 27px;
...
}
Der Grund dafür ist, dass in HTML5 zwar ein spezielles canvas
-Element existiert,
aber kein spezielles svg
-Element. Ersatzweise wird in Raphaël daher ein
div
-Element verwendet, dessen Größe dann allerdings via CSS explizit festgelegt werden
muss.
Die Definition der Größe einer Raphaël-Bühne an zwei unterschiedlichen Stellen sollte vermieden werden, da es bei Änderung der Bühnengröße zu Inkonsitenzen kommen kann (wenn die Größe versehentlich nur an einer Stelle geändert wird). Code-Verdopplung sollte gemäß dem Programmierprinzip „Don't repeat yourself“ (Dry) sowieso stets vermieden werden.
In der Version 4 des SVG-Hello-World-Tutoriums kann dieses Problem recht elegant gelöst werden.
Die Größe der Bühne wird in der JavaScript-Datei CONSTANT.js
festgelegt:
var CANVAS_WIDTH = 300;
var CANVAS_HEIGHT = 27;
Bei der Formatierung der Raphaël-Bühne (Hervorhebung des Randes) wird die Größe des zugehörigen
div
-Containers nicht mehr mittels statischem CSS sondern mittels JavaScript (genauer: jQuery)
unter Rückgriff auf diese beiden Konstanten festgelegt:
v_canvas = new Raphael("d_canvas", CANVAS_WIDTH, CANVAS_HEIGHT);
$("#d_canvas")
.css ({"width": CANVAS_WIDTH,
"height": CANVAS_HEIGHT,
});
Quellen
- Kowarschick (MMProg): Wolfgang Kowarschick; Vorlesung „Multimedia-Programmierung“; Hochschule: Hochschule Augsburg; Adresse: Augsburg; Web-Link; 2018; Quellengüte: 3 (Vorlesung)