Javascript am AEG
Präsentationen mit impress.js
Über impress.js
- Entwickelt von Bartek Szopka
- Download der Basis-Dateien unter https://github.com/bartaz/impress.js/
- Die Erstellung erfolgt entweder direkt im Quelltext oder mit speziellen Editoren, wie z.B. Strut http://strut.io/
Grundlagen
- HTML5-fähiger Browser notwendig
- Optimal ist eine aktuelle Version von Google Chrome, Firefox und Safari
- Man sollte sich vorher vergewissern, dass sich ein entsprechender Browser auf dem Vorführ-PC befindet (am besten verwendet man den eigenen Laptop oder eine portable Version auf USB)
Aufbau (1)
- Inhalte: Der Inhalt der gesamten Präsentation steht in der Datei
index.html
. - Darstellung: Die CSS-Datei liegt im Unterordner
css/
. - Logik: Die Javascript-Datei liegt im Unterordner
js/impress.js
.
Aufbau (2)
- Anders als bei Powerpoint besteht die Präsentation also nicht nur aus einer Datei, sondern aus vielen Dateien (mind. 1 HTML-, 1 CSS- und 1 Javascript-Datei, ggf. viele Grafik- und Font-Dateien)
- Zum Vorführen der Präsentation ist es unabdingbar, dass alle Dateien vorhanden sind
- Daher erstellt man für jede Präsentation einen eigenen Ordner und lädt diesen am Ende ins Web oder auf USB-Stick
Der Quelltext
Der Quelltext sieht im Prinzip so aus:
<section class="step slide" data-x="-500" data-y="-1500">
<header>
<h2>Der Quelltext</h2>
</header>
<main>
<p>Der Quelltext sieht im Prinzip so aus</p>
</main>
<footer>
<p>Was das bedeutet, schauen wir uns nun im Detail an</p>
</footer>
</section>
Die Leinwand
<section class="step slide" data-x="-500" data-y="-1500">
- Das
<section>
-Tag steht für einen beliebigen Bereich - eine Folie (HTML5 Element) - Die (CSS-)Klasse
step
regelt das Ein- und Ausblenden der Inhalte - Die Klasse
slide
erzeugt einen weißen Bereich mit runden Ecken (also das "Powerpoint-Folien-Äquivalent")
Das Raster
<section class="step slide" data-x="500" data-y="-1500">
- Die Präsentation befindet sich auf einem virtuellen Raster
- Die Position der Folie auf dem Raster gibt man mit
data-x
(waagerecht) unddata-y
(senkrecht) an - Die Größe einer Folie passt sich automatisch an Bildschirmauflösung und Fenstergröße an
Folien wechseln
Um die Folie nach rechts weiterwandern zu lassen (so wie es hier gerade passiert), erhöht man den data-x
-Wert um 1000 (Pixel). Der data-y
-Wert bleibt gleich.
Folie 1
<section class="step slide" data-x="1500" data-y="-1500">
Folie 2 (rechts von Folie 1)
<section class="step slide" data-x="2500" data-y="-1500">
Mehrteilige Folien (1)
<section class="step slide multi" data-x="2500" data-y="-1500">
- Soll beim Folienwechsel die Folie nicht "wandern" ergänzt man die CSS-Klasse
multi
. Die nicht-aktive Folie wird dann automatisch komplett ausgeblendet, damit sich die Inhalte nicht überlappen - Die
data-x
unddata-y
-Werte dürfen dann natürlich nicht verändert werden
Mehrteilige Folien (2)
<section class="step slide multi" data-x="2500" data-y="-1500">
- Das ist nützlich bei Inhalten zu einem Thema, die nicht auf eine Folie passen
Mehrteilige Folien (2)
<section class="step slide multi" data-x="2500" data-y="-1500">
- Das ist nützlich bei Inhalten zu einem Thema, die nicht auf eine Folie passen
- Man kann so auch Inhalte Absatz für Absatz - wie bei Powerpoint - einblenden (schaut in den Quelltext, um zu sehen, wie das gemacht wurde)
Folien benennen
<section id="name" class="step slide" data-x="3500" data-y="-1500">
- Jede Folie kann unter einer eigenen URL direkt abgerufen oder verlinkt werden
- Standardmäßig ist der Name
step-nr
, wobei nr die Foliennummer ist (z.B. step-13 für Folie 13) - Mittels des Attributs
id
kann man feste Namen vergeben, die unabhängig von der Foliennnumer sind
Schwung…
in die Präsentation bringt man mitdata-rotate
. Außerdem kommt auf dieser "Folie" noch blank
und data-scale
zum Einsatz. Was man damit macht, schauen wir uns jetzt mal an.
Zwischentitel
<section class="step blank" data-x="-500" data-y="0"
data-rotate="90" data-scale="2.5">
- Mit der Klasse
blank
erzeugt man eine blanke "Folie" ohne Header, Hintergrund oder Ecken data-rotate
legt die Rotation fest - und zwar erst nach links und bei der nächsten Folie in gleichem Winkel wieder zurück nach rechtsdata-scale
ist die Skalierung der Folie im Vergleich zu den anderen Foliendata-x
unddata-y
kennen wir ja schon (oder?)
Nun geht's bergab
Für diesen "Wander"-Effekt erhöht man den data-y
-Wert um 750. Der data-x
-Wert bleibt unverändert.
Folie 1
<section class="step slide" data-x="1500" data-y="250">
Folie 2 (unter Folie 1)
<section class="step slide" data-x="1500" data-y="1000">
Es geht rund…
wenn man (so wie auf dieser Folie)data-rotate="270"
verwendet.
Es geht aufwärts
Für diesen Effekt reduziert man den data-y
-Wert einfach um 750. Der data-x
-Wert bleibt wieder gleich
Folie 1
<section class="step slide" data-x="1500" data-y="1000">
Folie 2 (über Folie 1)
<section class="step slide" data-x="1500" data-y="250">
Verlinkung
Links können ganz normal mit dem <a>
-Tag gesetzt werden. Will man eine andere Folie innerhalb dieser Präsentation verlinken, gibt man die ID (Nummer oder Name) der Folie an.
<a href="#step-19">Folie 19</a>
<a href="#name">Folien benennen</a>
3D-Effekt
Mit data-rotate-x
und data-rotate-y
legt man die Sicht auf die x- und y-Achse fest. Beim Wert 90 (90°) ist nichts zu sehen, da man die Folien dann sozusagen genau im Querschnitt sieht. Mit data-z
legt man fest, um wie viel der Anzeigebereich verschoben werden soll. Zusammen mit einem hohen data-scale
-Wert erzeugt man so einen 3D-Effekt des Textes zur gesamten Präsentation (siehe nächste Folie).
<section class="step hide" data-x="-3000" data-y="1000" data-z="2000"
data-rotate-x="30" data-rotate-y="-30" data-scale="6">
Und hier kommt
der 3D-EffektText-Animationen
Soll sich der Text bewegen, ergänzt man in <section>
class="animation"
. Durch die Klassen scaling
, positioning
und rotating
kann man Text dann skalieren, positionieren und drehen. Zusammen mit data-rotate
und data-scale
erzeugt man schöne Effekte. Die nächste "Folie" demonstriert dies.
<section class="step animation" data-x="1500" data-y="500"
data-rotate="300" data-scale="0.5">
<p><span class="scaling">Skalierung</span><br>
<span class="positioning">Positionierung</span><br>
<span class="rotating">Rotation</span></p>
</section>
Skalierung
Positionierung
Rotation
Kopf- und Fuß
Möchte man eine feste Kopf- und Fußzeile außerhalb der Präsentationsfläche einfügen (so wie in dieser Präsentation oben und unten links zu sehen) fügt man den Text in die ID-Bereiche kopf
oder fuss
ein, die sich im Quelltext ganz am Ende befinden.
<div id="kopf">Zur Übersicht</div>
<div id="fuss">Universitätsbibliothek Bielefeld</div>
Schlusswort
Alles am Design kann man über die CSS-Datei anpassen. Wer sich damit auskennt, kann sich dort austoben (zur Sicherheit sollte man aber das Original als Referenz behalten, falls etwas schief geht).
Wem eine "Standard"-Präsentation genügt, kann den HTML-Quelltext dieser Präsentation problemlos als Steinbruch verwenden. Diese Präsentation hat dafür alle notwendigen Kenntnisse vermittelt.
Websites / Literatur
- Beeindrucke.js - Präsentationen gestalten mit Impress.js
Jo Bager, c't 18/2013, S. 104-106 - Beispiele, Demos, Plugins: https://github.com/bartaz/impress.js/wiki/Examples-and-demos
- HTML5 - Ein impress.js-Präsentation, die die Möglichkeiten von HTML5 zeigt (Videos, Einbettung dynamischer Elemente)
http://ub.unibi.de/kwihtml5 - Strut-Demo
http://www.youtube.com/watch?v=TTpiDXEIulg
Websites / Literatur
Und nun heißt es: Loslegen und ausprobieren.
Viel Spaß dabei!