Tutorial: Einen Preloader erstellen

Preloader

Tutorial: Einen Preloader erstellen

Autoren: Straube und Wisnia

Konzept

Preloader sind Animationen, die während dem Ladevorgang einer Website angezeigt werden. Sie informieren den Nutzer über Ladeprozesse und befriedigen sein Bedürfnis  zu wissen, was während der Interaktion mit einer Website im Hintergrund abläuft. Gleichzeitig überbrücken die Wartezeit. So sind sie zum einen unterhaltsam, zum andern verbessern sie die User Experience einer Seite.

In diesem Beispiel dient der Preloader durch sein außergewöhnliches Design, passend zu einer Website aus dem Themenbereich Foodblogging, zusätzlich dem Branding. Die Animation bleibt dem Nutzer im Gedächtnis und steht in einem klaren thematischen Bezug zur Seite aus dem Genre.

Dabei handelt es sich um eine zustandsbehaftete Animation, die, zumindest in der praktischen Anwendung, mit HTML Statuscodes korrespondiert. Zur Erstellung wurde mit der Web Animation API und CSS3 eine native Animationstechnik genutzt.

Dieser Preloader besteht aus zwei Bestandteilen: Einem sehr grafiklastigen endless Spinner, der zur Unterhaltung der Betrachters dient und einem Ladebalken, der je nach Implementierung scheinbar oder tatsächlich einen Ladefortschritt anzeigt.

Nun zum praktischen Teil. Im Folgenden ist in 3 einfachen Schritten erklärt, wie ein individueller Leader selbst ‚gebaut‘ werden kann.

Die Entwicklungsumgebung:

Entwicklungsumgebungen wie codepen.io eignen sich besonders gut zum Erstellen von Animationen, da sie den Code sehr übersichtlich visualisieren und das Ergebnis des Codes und Änderungen daran augenblicklich aktuell anzeigen. Dennoch eignen sich auch klassische Texteditoren wie Notepad++.

Schritt 1: HTML-Grundgerüst

Im ersten Schritt wird ein einfaches HTML-Grundgerüst erstellt. Dennoch sollte im Voraus bereits ein Polyfill für die Web Animation API (WAAPI) eingebunden werdende diese nicht von allen Browsern unterstützt wird.  Anschließend wird eine Div-Klasse für die gesamte Animation erstellt, sowie drei weitere für den oberen Teil der Animation sowie eine Klasse und Unterklasse für den Ladebalken, um diese Elemente später mit CSS3 und Java Script weiter bearbeiten zu können. Der gesamte HTML-Code sieht wie folgt aus:

 HTML-Grundgerüst
HTML-Grundgerüst

Schritt 2: Styling und Animation mit CSS

Das Entwickeln des CSS Codes ist der komplexeste Teil der Animation. Als erstes wird die Größe des Div-Containers für die gesamte Animation festgelegt. Anschließend werden die drei Elemente, die sich über dem Ladebalken befinden sollen und später animiert werden, gestylt. Durch eine Anweisung kann Größe, Höhe und Position für alle drei Elemente festgelegt werden und deren Farbe ggf. in individuellen Anweisungen für jedes Element. An dieser Stelle ist es wichtig, die Eigenschaft ‚display‘ auf den Wert ‚inline-block‘ zu setzten, sodass die Elemente nebeneinander angezeigt werden.

Um den Ladebalken zu erstellen, werden zunächst Größe, Form und Farbe sowie Position für diesen festgelegt. Dabei ist eine absolute Positionierung innerhalb des übergeordneten Containers zu empfehlen, um Verschiebungen der Grafik bei unterschiedlichen Bildschirmgrößen zu vermeiden. Darauffolgend werden die Animationsmöglichkeiten von CSS3 genutzt , da diese leicht einzusetzen und für einen Leader mit unbestimmten Ladefortschritt gut geeignet sind.

Zum Animieren des Ladebalkens wird zunächst ein weiterer Balken mit anderer Farbe und geringerer Größe innerhalb des ersten Balkens erstellt. Diesem wird mithilfe der CSS Eigenschaften ‚transition:‘ und ‚animation‘ Funktionalität verliehen. Durch die Attribute dieser Eigenschaften können ua. Dauer, Art und Iteration der Animation bestimmt werden. Anschließend werden für die load Eigenschaft des Ladebalkens Keyframes definiert. So startet in diesem Beispiel der Ladevorgang bei 2% und hat bei 10% ebenfalls 10% der Länge des Balkens erreicht.

    

 

Schritt 3: Animation mit JS

Im letzten Schritt wird der obere Teil des Loaders mithilfe von Java Script uns WAAPI animiert. Für einfache Ladegrafiken ist die Verwendung von CSS3 ausreichend. Animationenmit Java Script erlauben jedoch mehr Kontrolle und bieten mehr Möglichkeiten.  Das erste zuganimierende Element wird zunächst mit dem Quer Selektor ausgewählt und im Folgenden  mit der .animate() Methode animiert. Mit der Eigenschaft ‚transform‘ werden Keyframes festgelegt. Das bedeutet in diesem Fall das Verschieben des Elementes auf der Y-Achse. Des Weiteren werden Dauer und Wiederholungsfreqenz festgelegt. In diesem Beispiel ist die Animation ‚infinite‘, in der Implementierung in einer Website würde die Animation in Abhängigkeit mit dem Ladestatus der Website bzw. einem Systemstatus gesetzt werden. Der Vorgang wird für alle zu animierenden Elemente wiederholt.

Abschließend können nach Belieben an Stelle der mit CSS gestylten Elemente Grafiken eingefügt werden. Hier eignen sich besonders Icons im Flat Design, um eine optische Überladung der Animation zu vermeiden.

Listings:

 
  
  Loading Bar Food Blogger
      

https://cdnjs.cloudflare.com/ajax/libs/web-animations/2.1.4/web-animations.min.js


http://js/index.js

 

 

 

 

 

Loading…

 

 

https://cdnjs.cloudflare.com/ajax/libs/web-animations/2.1.4/web-animations.min.js http://js/index.js

var a = document.querySelector('.a');
var animation = a.animate([
  { transform: 'translateY(-1em)' },
  { transform: 'translateY(0em)' }], 
  { duration: 700,
  iterations: Infinity,
  direction: 'alternate',
});

var b = document.querySelector('.b');
var animation = b.animate([
  { transform: 'translateY(-1em)'},
  { transform: 'translateY(0em)'}],
  { duration: 700,
  iterations: Infinity,
  direction: 'alternate',
  delay: 250
  });  

var c = document.querySelector('.c');
var animation = c.animate([
   { transform: 'translateY(-1.2em)'},
   { transform: 'translateY(-0.2em)'}],
   { duration: 700, 
   iterations: Infinity,
   direction: 'alternate',
   delay: 500
  });
.container_animation {
  position:absolute;
  left:45%;
  top: 30%;
  height: 400px;
  width:400px;
}


.a, .b, .c {
  postition:absolute;
  display: inline-block;
  width: 1em;
  height: 1em;
  font-size: 4em;
  border-radius: 50%;
  margin-right:0%;
  padding: 10px;
  top:20px;
  left:25%;
}


/* Loading CSS */


.body {
	color: #333;
}
.progressbar{
  height: 26px;
  position: absolute;
  left: 25%;
  top: 110px;;
  width: 300px;
  background: rgba(150, 0, 0, 0.5);
  border-radius: 10px;
  margin: -20px 0 0 -100px;
  padding: 2px;
}
.loading{
  transition: all 500ms ease;
  height: 20px;
  width: calc(100% - 10px);
  border-radius: 8px;
  background: #474747;
  position: absolute;
  margin: 3px;
  display: inline-block;
  animation: load 15s ease infinite;
}
.load{
  font-family: Arial;
  font-weight: bold;
  text-align: center;
  margin-top: 40px;
}

@keyframes load{
  0%{
    width: 2%;
  }
  10%{
    width: 10%;
  }
} 

Im Studiengang Informationsmanagement an der Hochschule Hannover sind im Rahmen des Kurses Entwicklung von Multimediasystemen II (Sommersemester 2017, Prof. Dr.-Ing. Steinberg) einige gute, funktionale Animationen samt Tutorials entstanden. Verwendete Techniken sind HTML5, CSS3 und JavaScript.

Die besten Tutorials stellen wir euch hier in den nächsten Wochen nach und nach vor.

Tutorial: Multistep Login Formular

multisteplogin

Tutorial: Multistep Login Formular

Autor: Ilja Melnik

Einleitung

Bei dieser Prüfungsleistung handelt es sich um eine konzeptionelle Erstellung eines Multistep Formulars mit funktionalen Animationen. Für die Umsetzung wurden ausschließlich Html-5, Css3 und Javascript (JQuery) verwendet.

Die Grundidee ist ein Formular mit visuellem Feedback und einer inhaltlichen Strukturierung.

Dies wird primär mit drei funktionalen Animationen umgesetzt:

  1. Einer Progressbar, die sich direkt über dem Formular befindet und den Fortschritt visualisiert.
  2. Einer Strukturierung in 4 Formulareinheiten (Slides), die mit 2 Navigationsbuttons bedient werden und an die Progressbar geknüpft sind. Die Übergänge der einzelnen Slides sind zusätzlich animiert, um die Bedienung intuitiver zu gestalten.
  3. Einem Shake-Feedback bei nicht Ausfüllen von benötigten Feldern (im Beispiel nur das Username Feld).

Die Progressbar:

Zunächst wurde in Html ein Grundgerüst für die Progressbar erstellt und das erste <li> Element mit der class=“active“ markiert. Diese Klasse wird später mithilfe von Javascript an die weiteren <li> Elemente weitergegeben um den gewünschten Fortschritt zu visualisieren.

Grundgerüst für die Progressbar
Grundgerüst für die Progressbar

Anschließend wird mit Css die visuelle Struktur eines Balkens erstellt, der mithilfe der :before und :after Selektoren die einzelnen Punkte verbindet. Zusätzlich wird ein counter erstellt, der eine Nummerierung durchführt. Zuletzt wird das „first-child“ der :before Selektoren (also das erste Verbindungselement) ausgeblendet, um die gewünschte Struktur zu erhalten. Es würde sonst links überstehen, z.b. ist das Blau gefärbte Verbindungsstück in der unteren Abbildung tatsächlich der :before Element des zweiten Punktes <li>).

Code des Balkens
Fortschrittsbalken

 

 

 

 

 

 

 

 

 

 

Die Sliderstruktur:

In Html wird nun die Grundstruktur für die verschiedenen Slider geschaffen, indem jeweils pro Slide ein <fieldset> Element geschaffen wird. Anschließend werden den <fieldset> Elementen die <input> Elemente, die aus Formelementen wie text, password, email, tel und dem Submitelement Button bestehen untergeordnet.

Grundstruktur der verschiedenen Slider

Nachdem die einzelnen Slider in Css visuell angepasst wurden, ist vor allem ein Schritt interessant: Momentan befinden sich noch alle Slides, bzw. <fieldset> Elemente untereinander, wir blenden also alle außer dem ersten zunächst aus. Dies ist mit einer Zeile Code möglich, da die Html Struktur hierarchisch so aufgebaut ist, dass die <fieldset> Elemente direkt dem <form> Element mit der id #formwrapper untergeordnet sind.

Nun werden im JQuery Teil zunächst die Variablen definiert, die uns die Übergangsanimation ermöglichen: Die Fieldsets, um richtig iterieren zu können, die Attribute, die wir verändern um eine Animation zu erschaffen und der Animationszustand selbst, mit dem wir bei wiederholtem Knopfdruck Überschneidungen verhindern können.

Der Übergang läuft wie folgt ab:

Mit dem next_fs index übergeben wir den active Status auf der Progressbar. Dann beginnen wir das momentane Fieldset zu verstecken, während das nächste angezeigt wird. Das momentane Fieldset wird transparenter, da die opacity auf 0 geht, zusätzlich wird es auf 80% Größte herunterskaliert. Gleichzeitig wird das nächste Fieldset von rechts eingeschoben, während dessen opacity auf 1 hochgeht.

Dieser Vorgang findet innerhalb eines click Events beim drücken des ‚Next‘ Button statt, ein Ablauf feuert auch bei der Interaktion mit dem ‚Previous‘ Button. Dabei sind dann die Animationsrichtungen angepasst, außerdem werden die entsprechenden active Klassen auf der Progressbar wieder entfernt.

Das Shake-Feedback:

Bei dem Shake-Feedback in diesem Beispiel handelt es sich um eine kurze links-rechts Bewegung des Inputs, wenn der ‚Next‘ Button gedrückt wird, während ein benötigtes Feld noch nicht ausgefüllt wurde (in diesem Fall nur bei dem ersten Slider und dem ‚Username‘ Input Feld). Hierfür erstellen wir zunächst eine .error Klasse im Css, die eine Animation beinhaltet und noch keinem Html Element zugewiesen wird. Zusätzlich erstellen wir einen zugehörigen Keyframe at-rule und definieren hier die links-rechts Bewegung mithilfe der 0-100% Skala.

Als muss mit Javascript sichergestellt werden, dass diese Klasse allen leeren Input Elementen hinzugefügt wird, die sich im aktuellen Fieldset befinden, während der ‚Next‘ Button gedrückt wird (In diesem Beispiel selektieren wir statisch die id ‚#username‘). Anschließend erstellen wir einen Timer, der diese Klasse nach 2 Sekunden wieder löscht, damit diese Interaktion nochmal stattfinden kann (In diesem Beispiel selektieren wir statisch die id ‚#username‘).

Weitere Features:

Ein weiteres Feature, was nicht unbedingt den funktionalen Animationen zugehört ist die Erkennung des Inputs ins Username Feld und die Übergabe an das Titel Feld des folgenden Fieldsets. Hierbei ist zu beachten, dass das Titel Feld beim feuern der Buttons mit der empty Funktion zurückgesetzt wird, um eine Überflutung von Worten zu vermeiden.

Zuletzt ist der ‚Done!‘ Submit-Button zu erwähnen, dieser ist rein dekorativer Natur und hat absolut keine Funktion.

Im Studiengang Informationsmanagement an der Hochschule Hannover sind im Rahmen des Kurses Entwicklung von Multimediasystemen II (Sommersemester 2017, Prof. Dr.-Ing. Steinberg) einige gute, funktionale Animationen samt Tutorials entstanden. Verwendete Techniken sind HTML5, CSS3 und JavaScript.

Die besten Tutorials stellen wir euch hier in den nächsten Wochen nach und nach vor.

Tutorial: Informativer OnePager für Austauschstudenten

Onepager

Tutorial: Informativer OnePager für Austauschstudenten

Autor: Cagla Bacaksiz

Im Rahmen des Kurses „Entwicklungen von Multimediasystemen II“ sollte eine funktionale Web Animation konzipiert und technisch umgesetzt werden. Die Grundidee meiner Web Animation bestand darin, einen übersichtlichen One-Pager zu programmieren, welcher Informationen für ausländische Studenten bzw. Studieninteressierten beinhaltet. Da ich selber in diesem Semester im Austausch mit amerikanischen Austauschstudenten an unserer Fakultät war, ist mir diese Idee in den Sinn gekommen. Technischer Anspruch bestand darin, eine platzsparende Navigationsleiste und einen intuitiven Slider zu implementieren.

Erster Entwurf

Hierfür wurde zunächst eine Zeichnung erstellt, um zu visualisieren wie der One-Pager aussehen soll:

 

Sektion 1: Navigation & Parralax Effekt

 

Sektion 1: Slider

Der One-Pager sollte zunächst zwei Sektionen beinhalten (natürlich ist dies zukünftig erweiterbar), welche durch einfaches scrollen oder per Navigation erreichbar sein sollten. Die Navigation wird aufklappbar sein, um zum einen Platz zu sparen und zum Anderen eine funktionale Interaktion mit dem User zu bieten. Optisch soll das Logo der Hochschule mithilfe des Parallax-Effektes mit nach unten scrollen und die Überschrift beim Start der Seite einfliegen. Der Vor- und Zurückbutton soll hierbei beim drüberhovern vergrößert werden.

Technische Umsetzung:

Zur Implementierung der oben beschriebenen interaktiven Funktionen und Effekte wurde JavaScript verwendet und externe jQuery-Bibliotheken hinzugezogen. Zum Aufbau wurde eine HTML-Datei erstellt, die die Seitenstruktur enthält und eine CSS-Datei für Layout und Design.

Es bestehen insgesamt sechs JavaScript-Dateien: eine für die erste Sektion, eine für die Zweite, eine für das Menü (Navigation), eine für den Scroll-Effekt, und zwei jQuery-Bibliotheken (jQuery Foundation und Waypoints).

Hier einige Aspekte des Projektes beispielhaft dargelegt:

Scroll-Effekt

Zunächst wird mithilfe eines Eventhändlers in der section1.js Datei auf die scroll.js Datei zurückgegriffen, welche wiederum die jQuery-Bibliothek nutzt.

function parallax(){
    var layer_1 = document.getElementById('layer_1');
    var layer_2 = document.getElementById('layer_2');
    
    layer_1.style.top = -(window.pageYOffset / 3) + 'px'; 
    layer_2.style.top = -(window.pageYOffset / 3) + 'px';	
}
window.addEventListener("scroll", parallax, false);
// ##############################################################################################
// Smooth Scrolling 
// Source: http://www.w3schools.com/jquery/tryit.asp?filename=tryjquery_eff_animate_smoothscroll 
// ##############################################################################################

$(document).ready(function(){
  // Add smooth scrolling to all links
  $("a").on('click', function(event) {

    // Make sure this.hash has a value before overriding default behavior
    if (this.hash !== "") {
      // Prevent default anchor click behavior
      // tried to delete the next function line to see what happens here but the scroll didn't work correct 
      event.preventDefault();

      // Store hash
      var hash = this.hash;

      // Using jQuery's animate() method to add smooth page scroll
      // 1500 is the number of milliseconds it takes to scroll to the specified area
      $('html, body').animate({
        scrollTop: $(hash).offset().top
      }, 1500, function(){
   
        // Add hash (#) to URL when done scrolling (default click behavior)
        window.location.hash = hash;
      });
    } // End if
  });
})

Fly-In-Text

Es wird hier ebenfalls auf jQuery zurückgegriffen.

// 	Text Animation 
// 	Source: https://www.youtube.com/watch?v=QZpZ1zRcR6c
$(function(){
    setTimeout(function(){
        $(".fly-in-text").removeClass("hidden");
        }, 400);
        
})();

// 	Explanation: 
// 	-	has a $-sign because we use jquery for the 'animation'  
// 	- 	remove class from fly-in-text 
// 	-	setTimeout() method calls a function or evaluates an expression after 400 milliseconds

Es entstand so eine für den User übersichtliche und ansprechende Seite, welche intuitiv bedienbar ist und durch die Navigation und den Ankerpunkten gut steuerbar ist ohne von eigentlich Inhalt der Seite abzulenken. Zukünftig könnte die Seite um weitere Sektionen erweitert werden. Beispielsweise könnte man eine Sektion mit Kontaktformular ergänzen, um es ausländischen Studenten zu ermöglichen, Fragen zu stellen.

One-Pager:

Code des Projektes auf Codepen.io

Im Studiengang Informationsmanagement an der Hochschule Hannover sind im Rahmen des Kurses Entwicklung von Multimediasystemen II (Sommersemester 2017, Prof. Dr.-Ing. Steinberg) einige gute, funktionale Animationen samt Tutorials entstanden. Verwendete Techniken sind HTML5, CSS3 und JavaScript.

Die besten Tutorials stellen wir euch hier in den nächsten Wochen nach und nach vor.

Tutorial: Dynamische Notendarstellung

Dynamische Notendarstellung

Dynamische Notendarstellung

Autor: Jana Avemarg

Design

Die Grundlage bildet eine auf HTML5 basierte Single-Page Website (1). Diese bietet den Vorteil, dass die Navigation ohne Verzögerung ausgeführt, da sich der Besucher immer der gleichen Seite befindet, ohne es zu merken.

Für eine schönere Darstellung wurde eine öffentlich verfügbare Schriftart von google (2) und ein Farbschema von coolors.co (3) benutzt.

Benutzung / Chart

Der interessante Teil befindet sich unter dem Menüpunkt ‚Chart‘. Das erste Eingabefenster reagiert auf Eingaben und beinhaltet die, unter dem Diagramm angezeigten, Labels. Das zweite Eingabefenster reagiert ebenfalls auf Eingaben und beinhaltet die Anzahl der jeweiligen Note. Die Eingaben müssen mit einem Komma getrennt werden. Nachkommastellen werden mit einem Punkt abgebildet (z.B. 2,1.75,1.5,1.25,1). So ist es auch möglich verschiedene Notenschemata zu verwenden. Der Chart wurde mit Hilfe der Library Chart.js (4) erstellt. Unter dem Chart wird die auf zwei Nachkommastellen gerundete Durchschnittsnote angezeigt. Über die Checkbox ‚Barchart‘ lässt sich die Darstellung des Charts zwischen Barchart und Linienchart schaltet.

Tutorial

Das Tutorial erklärt zuerst, wie ein statisches Diagramm angezeigt werden kann. Ab Kapitel 5. wird erklärt, wie sich das Diagramm dynamisch verändern lässt. In Kapitel 8. wird die Berechnung der Durchschnittsnote gezeigt. Abschließend ist das Resultat auf Codepen.io zusehen.

Die Darstellung eines statischen Diagramms gestaltet sich als relativ einfach.

1. Import der Chart.js-Library

<head>

< script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.7.1/Chart.bundle.min.js" >

< /script >

</head>

2. Es muss ein <canvas>-Element erstellt werden

<canvas id="myChart"></canvas>

3. Chart mit 2D-Kontext des Canvas verbinden

Die Konfiguration (‚{configuration}‘) wird im nächsten Schritt erläuert.

var ctx = document.getElementById("myChart").getContext('2d');

var myChart = new Chart(ctx, {configuration...}

4. Konfiguration des Charts

Der Chart wird mit Hilfe eines javascript-Objektes konfiguriert. Dieses Objekt beinhaltet alle Information, die für die Darstellung notwendig sind.

Die einzelnen Konfigurationsmöglichkeiten werden in den Kommentaren erläutert.

{
   type: 'bar', //Zeigt die Daten in einem Balkendiagramm an
   data: { //Datenobjekt
    labels: ["6", "5", "4", "3", "2", "1"], //Beschriftung der Y-Achse
    datasets: [   //Liste von Daten, da mehrere pro Chart angezeigt werden können.
     {
       label: 'Notenverteilung',  //Überschrift
       data: [0, 2, 3, 5, 8, 5],  //Dateneingabe: Anzahl des jeweiligen Labels (z.B. Note '6' = 0)
       backgroundColor: 'rgba(255, 99, 132, 0.2)', //Hintergrundfarbe der Balen (Listen sind möglich für verschiedene Farben)
       borderColor: 'rgba(255,99,132,1)', //Farbe der Umrandung (auch hier sind Listen möglich)
       borderWidth: 1 //Weite der Umrandung
     }
    ]
   }
}

Bis jetzt haben wir einen statischen Chart, der die vorkonfigurierten Labels („6″,“5″,“4″,“3″,“2″,“1“) und die dazugehörige Verteilung (0,2,3,5,8,5) anzeigt.

5. Reagieren auf Benutzereingaben

Zuerst erstellen wir ganz normale HTML-Textareas. Eins für die Labels und eins für die Anzahl der Noten. Wir definieren das Event ‚onkeyup‘, das ausgeführt wird, sobald eine Taste in der entsprechenden Textarea losgelassen wird. Das Event soll den Aufruf der javascript-Funktion ‚zeicheneGraph()‘ ausloesen. Diese Methode wird im folgendem Punkt erläutert.

<h3>Eingabe<h3>

<p>Labels</p>

<textarea id ="labelInput"rows="4" cols="50" onkeyup="zeichneGraph()">1,2,3,4,5,6</textarea>

<p>Noten</p>

<textarea id ="notenInput"rows="4" cols="50" onkeyup="zeichneGraph()">0,2,3,5,8,5</textarea>

6. Manipulation der Chart-Daten

Wie zuvor erklärt, wird die zeichneGraph()-Funktion bei jeder Eingabe ausgelöst. Nun wird beschrieben, wie die Eingaben in den Chart gelangen.

Zuerst muss die Eingabe in ein Format gebracht werden, wo mit der Chart arbeiten kann. Das sind in diesem Fall Listen von Labels und Daten.

Vorbedingung: Die Informationen liegen komma-getrennt vor, z.B. 1, 2, 3,….

6.1 Zugriff auf die Eingabefelder

Auf das Eingabefeld wird mit jQuery zugegriffen und dessen Wert ausgelesen:

$('#notenInput').val()
6.2 Eingabe in eine Liste konvertieren

Der Befehl split(‚,‘) zerlegt die Eingabe an der Stelle des Kommas und liefert so eine Liste von Werten, z.B. [1,2,3,…].

var noten = $('#notenInput').val().split(',');
6.3 Zuweisung der Liste in den Chart

Diese Liste muss jetzt nur noch dem Objektes unseres Charts zugewiesen werden.

In der Konfiguration kann man erkennen das die Labels in dem Objekt data liegen. Der Zugriff erfolgt so auf myChart.data.labels.

myChart.data.labels = labels;

Die Daten liegen in dem dataset-Objekt, welches wiederum auch in dem Objekt data liegt. Das dataset-Objekt ist eine Liste, da mehrere Graphen in einem Chart angezeigt werden können. Wir haben nur einen Graphen definiert und die Daten befinden sich daher an der ersten Stelle in der Liste. Der Zugriff erfolgt daher auf die Stelle 0.

myChart.data.datasets[0].data = noten;
6.4 Chart neu zeichnen

Damit der Chart neu gezeichnet wird, muss auf dem Objekt die update()-Methode aufgerufen werden.

myChart.update();
6.5 Gesamte Methode

Abschließend noch mal die Methode in ihrer Gesamtheit.

function zeichneGraph(){

      var noten = $('#notenInput').val().split(',');
      var labels = $('#labelInput').val().split(',');
      myChart.data.datasets[0].data = noten;
      myChart.data.labels = labels;

      myChart.update();
}

7. Änderung der Chart-Art

Die Änderung der Chart-Art (z.B. Linien- und Balken-Diagramm) gestaltet sich ähnlich, wie die Änderung der angezeigten Werte aus Kapitel 6.

7.1 Erstellung einer Checkbox

Es wird eine HTML-Checkbox verwendet, deren Änderungs-Event (onchange) mit einer javascript-Funktion verbunden ist. Das Attribut checked definiert, dass die Checkbox direkt gesetzt ist.

<label>

<input type="checkbox" onchange='klickAufBarchart(this);' checked/> Barchart

</label>
7.2 Prüfen des Checkbox-Zustandes

Eine Checkbox kann gesetzt bzw. checked sein, oder nicht.

Wir übergeben unserer Funktion die Checkbox selber über den Parameter mit (this).

In unserer javascript-Funktion können wir auf das Attribut checked zugreifen und prüfen, ob die Checkbox gesetzt ist oder nicht.

function klickAufBarchart(cb) {
   if(cb.checked){
       aendereGraph('bar');
   }
   else{
       aendereGraph('line');
   }

}
7.3 Änderung der Art des Charts ausführen

Das Object myChart muss komplett gelöscht und neu erstellt werden.

Dazu wird zuerst die destroy-Funktion aufgerufen und danach ein neues Chart-Objekt mit der übergebenen art-Objekt (z.B. ‚line‚ oder ‚bar‚) neu erstellt.

Die Daten werden auf den Ursprung-Zustand gesetzt, aber abschließend, durch den Aufruf der zeichneGraph()-Funktion mit den Werten der Eingabefelder aktualisiert.

function aendereGraph(art){

myChart.destroy();

myChart = new Chart(ctx, {
   type: art,
   data: chartData,
});

zeichneGraph();
}

8. Berechnung der Durchschnittsnote

Die Durchschnittsnote wird bei jeder Eingabe neu berechnet. Es bietet sich daher an, die Funktion, die wir schon für die Änderung des Diagramms (zeichneGraph()) erstellt haben, zu erweitern.

Ein Status-Text soll hier mögliche falsche Eingaben abfangen und eine Fehlermeldung ausgeben.

8.1 Überprüfung der gleichen Längen

Um eine Berechnung machen zu können, müssen die Labels die gleiche Anzahl wie die Noten haben.

if(noten.length==labels.length){ ... }
8.2 Berechnung der Zwischenwerte

Es muss berechnet werden, wie viele Noten in Summe eingetragen worden sind um die Anzahl von Klausuren zu erhalten.

Und es muss eine Summe errechnet werden, welche die Klausuren nach ihren Noten gewichtet z.B. (6*0)+(5*2)+(4*5)+….

Das passiert in einer Schleife, bei der über die Liste der Noten und Labels gelaufen wird.

Nachdem beide Summen errechnet worden sind, wird der Durchschnitt errechnet, indem die gewichtete Summe durch die Anzahl der Klausuren geteilt wird.

Abschließend wird der Durchschnitt auf zwei Stellen gerundet mit Math.round(durchschnitt * 100) / 100).

var notenSum=0;
var notenAnzahl=0;
var breakup = false;
for(var i=0; i< noten.length;i++){
    //https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/parseFloat
    //zu Zahlen konvertieren
    var label= parseFloat(labels[i]);
    var note = parseFloat(noten[i]);
    //https://www.w3schools.com/jsref/jsref_isnan.asp
    //Falls keine Zahl => Berechnung abbrechen und Fehlermeldung anzeigen
    if(isNaN(label) || isNaN(note)){

        breakup = true;
        break;
    }else{
        notenAnzahl = notenAnzahl + note;
        notenSum = notenSum + (note*label);
    }
}
if(breakup){
    $('#status').text('Bitte nur komma-getrennte Zahlen eingeben (z.B. 1,3,2).');
        $('#durchschnitt').text('');
}
else{
    var durchschnitt = notenSum/notenAnzahl;
    //https://stackoverflow.com/questions/9453421/how-to-round-float-numbers-in-javascript
    $('#durchschnitt').text('Durchschnittsnote: '+ Math.round(durchschnitt * 100) / 100);
}

9. Resultat:

Im Studiengang Informationsmanagement an der Hochschule Hannover sind im Rahmen des Kurses Entwicklung von Multimediasystemen II (Sommersemester 2017, Prof. Dr.-Ing. Steinberg) einige gute, funktionale Animationen samt Tutorials entstanden. Verwendete Techniken sind HTML5, CSS3 und JavaScript.

Die besten Tutorials stellen wir euch hier in den nächsten Wochen nach und nach vor.

Videos rundum IM: Einführung Bachelor Informationsmanagement

Einführung Bachelor Informationsmanagement

Einführung Bachelor Informationsmanagement

Autoren: Anthony Stevenson und Florian Lindmüller

Idee

Unsere Idee war ein Animiertes Video zum Thema Informationsmanagement an der Hochschule Hannover zu gestalten. Dabei sollten alle vermittelnden Kern-Kompetenzen transparent gemacht, sowie ein keiner Ausblick in eine mögliche berufliche Zukunft gegeben werden.

Zielsetzung

Die Zielsetzung beinhaltete darauf aufbauend ein fertiges Vorstellungsvideo, dass man vor Einführungsveranstaltungen, Messen oder auf der Hochschulwebsite abspielen bzw. veröffentlichen könnte. Diese Zielsetzung haben wir erreicht.

Arbeitsweg

Wir begannen mit der Erstellung eines Konzepts. Hierfür war es wichtig eine Hauptfigur zu erstellen, welches wir auf Grundlage eines gesehenen Designs in abgewandelter Form nachgestellt hatten. Dann erarbeiteten wir uns die benötigten Informationen, die als Material im Video verwendet wurden. Schließlich stellten wir Visualisierungen der Informationen dar und fügten alles zusammen. Für die Audio-Spur schrieben wir einen Text und gaben ihm jemand mit einer angenehmen Stimme zum Vorlesen.

Verwendete Techniken

Für die Visualisierung der Hauptfigur „Bill“ haben wir Zeichnungen eingescannt, mit Photoshop bearbeitet und in PowerPoint eingefügt. Dazu kamen dann in PowerPoint erstellte Diagramme und Grafiken, die auch noch mit Photoshop bearbeitet wurden, damit sich diese besser in Adobe Premiere Pro verarbeiten ließen. Diese platzierten wir auf jeder Folie so genau, dass wir die Folien hintereinander abspielen konnten und nicht um modulieren mussten. Danach haben wir uns ein Soundtrack aus dem Internet heruntergeladen, welches als Hintergrundmusik abgespielt wird. Auf Bild und Hintergrundmusik folgte dann die Audio-Spur, die über ein Mikrofon aufgenommen wurde. Das Zusammensetzen von Audio und Videospur wurde dann mittels Adobe Premiere Pro realisiert.

PDF: Storyboard

Im Studiengang Informationsmanagement an der Hochschule Hannover sind im Rahmen des Kurses Entwicklung von Multimediasystemen I (Wintersemester 2017/18, Prof. Dr.-Ing. Steinberg) einige sehr gute Videos rundum das Studium Informationsmanagement und das studentische Leben an der Expo Plaza in Hannover entstanden. Dabei wurden unterschiedliche, klassische Techniken wie z.B. Erklärvideo, Legetechnik oder Stopmotion verwendet.

Die besten Videos stellen wir euch hier nach und nach vor.

Videos rundum IM: Erklärvideo – Was sind Stakeholder?

Stakeholder - Erklärung

Erklärvideo – Was sind Stakeholder?

Autoren: Rabea Langholz

Idee/Zielsetzung

Meine Idee und Zielsetzung war es einen studiengangsbezogenen Fachbegriff zu erklären. Ich habe mich deshalb für die Art eines Erklärvideos entschieden. Nachdem ich den Begriff „Stakeholder“ für mein Video ausgewählt hatte, begann ich mit der Recherche nach Informationen. Darauffolgend erstellte ich eine Mindmap, in der ich alle Ideen sammelte. Nach Aufstellung einer Gliederung und der Sortierung meiner Daten konnte der grundlegende Prozess der Erstellung meines Videos starten.

Programme/Vorgehen

Ich habe mir dazu ein Online Programm namens „GoAnimate“ zur Hilfe gezogen. Innerhalb dieses Programmes hatte ich 2 kostenlose Testwochen, indem ich mein individuelles Projekt erstellen konnte (Vgl. Abbildung 1).

Abbildung 1 - Hauptmenu
Abbildung 1 – Hauptmenu

Nach der Anlegung eines Kontos und der Freischaltung konnte ich direkt mit meinem Projekt beginnen. Dazu musste ich zunächst einen „Style“ wählen, indem mein Video gestaltet sein soll. Ich habe mich in dem Fall für den Style „Whiteboard Animation“ entschieden.

Abbildung 2 - Auswahl Style
Abbildung 2 – Auswahl Style

Nach Auswahl des Styles öffnete sich ein neues Fenster in dem ich alles rund um mein Video bearbeiten konnte. Dabei war der Bildschirm in drei Hauptsegmente unterteilt. Links die Sammlung und aller Galerie aller Symbole und Figuren, unten die Zeitleiste und in der Mitte der Bildschirm auf dem die derzeit aktuelle Folie dargestellt wurde.

Bearbeitungsmodus
Abbildung 3 – Bearbeitungsmodus

Die Bearbeitung innerhalb des Programms erwies sich als sehr simpel und unkompliziert. Alle Schritte und Symbole waren genau kenntlich gemacht, sodass die Handhabung sehr benutzerfreundlich war.

Die Erstellung einer Folie beanspruchte je nach Thematik einige Zeit. Man muss jedes Symbol, jede Figur, jede Animation und jedes Textfeld individuell erstellen und zusammenfügen. Hierbei erwies sich das Schneiden von Sequenzen, die Auswahl der Animationen der Figuren und die Dauer der einzelnen „Felder“ als grundlegende Techniken.

Das Online Programm bietet für Nutzer drei verschiedene „Plans“ an. Plans sind in diesem Fall verschiedene Pakete, die man buchen kann. Jedes Paket hat andere Features. So höher der Preis, desto mehr lässt sich mit dem Programm gestalten und machen. Das Basispaket kostet 39$ pro Monat , das Premium Paket 79$ pro Monat und das Ultra Premium Paket indem alle Funktionen enthalten sind 159$ pro Monat (Vgl. Abbildung 4).

Screenshot Preise
Abbildung 4 – Preise

Innerhalb meiner Probewochen hatte ich leider keine Lizenz zum direkten Download meines Videos, weshalb ich eine andere Software für die Aufnahme meines Videos sowie für die Hinterlegung der Audiospur verwenden musste (Camtasia).

 

PDF: Storyboard

Im Studiengang Informationsmanagement an der Hochschule Hannover sind im Rahmen des Kurses Entwicklung von Multimediasystemen I (Wintersemester 2017/18, Prof. Dr.-Ing. Steinberg) einige sehr gute Videos rundum das Studium Informationsmanagement und das studentische Leben an der Expo Plaza in Hannover entstanden. Dabei wurden unterschiedliche, klassische Techniken wie z.B. Erklärvideo, Legetechnik oder Stopmotion verwendet.

Die besten Videos stellen wir euch hier nach und nach vor.

BestOf Bachelor: Interaktives Storytelling zum Bauhaus100 Jubiläum

Storytelling Bauhaus100 von Amy Hoang

Amy Linh Hoang hat ihre sehr gute Bachelorarbeit im Studiengang Informationsmanagement mit dem Titel „Konzeption und Realisierung eines interaktiven Storytelling anlässlich des Bauhausjubiläums“ abgeschlossen und ein sehenswertes, interaktives Storytelling mittels JavaScript, CSS3 und HTML5 erstellt. Der Titel des Storytellings lautet „Oscar Schlemmers Weg zum Bauhaus„. Amys Bachelorarbeit ist als Kooperation der Abteilungen „Information und Kommunikation“ und „Design und Medien“ entstanden. Anlass für ihr interaktives Storytelling ist das Bauhaus100 Jubiläum 2019, zu dem es neben weiteren interaktiven Angeboten gesammelt bereitgestellt wird.

Hier geht’s zu Amys Storytelling.

Viel Spaß beim Anschauen!

WiSe 18/19: WebLab-Tutoren sind bei Lehre dabei

Webentwicklung mit JavaScript und HTML5

Im kommenden Wintersemester 2018/19 werden zwei unserer Lehrveranstaltungen im Studiengang Informationsmanagement (auch berufsbegleitend) tatkräftig durch unsere studentischen Hilfskräfte vom WebLab unterstützt.

Sowohl bei „Grundlegende Webtechniken 1“ (WWW1) als auch bei „Entwicklung von Multimediasystemen 1“ (MM-SYS-1) sind jeweils zwei Tutor*innen dabei.

Bei WWW1 helfen euch Sarah und Anja gern während Sprechstunden weiter, wenn es um Fragen rundum HTML5 und CSS3 geht. Bei MM-SYS-1 werden Thorsten und Leon euch bei der Entwicklung mit JavaScript und der Umsetzung von Progressive Web Apps unterstützen.

Wir freuen uns auf September! Aber erst einmal noch sonnige Semesterferien!

Euer WebLab-Team

Videos rundum IM: Funktionen der CampusCard der HsH

Die Funktionen der CampusCard

Im Studiengang Informationsmanagement an der Hochschule Hannover sind im Rahmen des Kurses Entwicklung von Multimediasystemen I (Wintersemester 2017/18, Prof. Dr.-Ing. Steinberg) einige sehr gute Videos rundum das Studium Informationsmanagement und das studentische Leben an der Expo Plaza in Hannover entstanden. Dabei wurden unterschiedliche, klassische Techniken wie z.B. Erklärvideo, Legetechnik oder Stopmotion verwendet.

Die besten Videos stellen wir euch hier nach und nach vor. Heute:

Funktionen der CampusCard der HsH

Autor: Lisa Heeg

Pre-Producation

Werkzeuge:

Zeichen- und Malutensilien, Schere, Handykamera

Arbeitsschritte:

Konzepterstellung zur  Grundidee in Form des Storyboards, dabei auch:
Festlegen der Technik: Mix aus Legetechnik (gezeichnete Objekte nacheinander in die Szene gebracht, allerdings nicht gefilmt, sondern fotografiert, ohne sichtbare Hände) und Stop-Motion
Überlegungen zu Ton: Musik unterlegen und eigenen Kommentar
Ablauf: 7 Abschnitte: Einleitung, die 5 Funktionen (Identifikation als Student, Semesterticket, Kopierkarte, Bibliotheksausweis, Mensakarte), Abschluss
Zeichnen und Ausschneiden der benötigten Elemente für die Szenen
Legen der Szenen entsprechend des Storyboards und fotografieren

Production

Werkzeuge:

Gimp, Windows Movie Maker, Handymikrofon, Audacity, Recherche

Arbeitsschritte:
Fotobearbeitung:

Die fotografierten Szenen werden mit Gimp bearbeitet. Zum einen werden Helligkeit und Kontrast sowie zum Teil Größe der Objekte und des Hintergrundes optimiert.  Zum anderen werden  Stop-Motion-Effekte vorbereitet. Dazu wurden Position, Größe, Perspektive oder Farbe von Objekten verändert. Des Weiteren werden mit Gimp erstellte Elemente hinzugefügt (z.B. Text) oder einzelne Objekte kombiniert (Bild der CampusCard mit Gesicht der gezeichneten Studentin). Jede Veränderung wird in einem Einzelbild gespeichert.

Videoerstellung:

Sämtliche Einzelbilder werden im Windows Movie Maker zu einem Video zusammengefügt. Dabei wird die Dauer der einzelnen Bilder festgelegt, z.B. besonders kurze Zeiten für Stop-Motion-Effekte. Es werden Animationen für Übergänge, sowie ein Intro und Abspann erstellt.

Audioerstellung:

Für die Musik wird nach lizenzfreien Titeln im Internet gesucht, genutzt wird: „Happy Chloé“ von https://www.terrasound.de/lizenzfreie-musik-fuer-youtube-videos/ . Die Audiokommentare wurden mit dem Handymikrofon und einer  App für „Sprachmemos“ selbst aufgezeichnet und mit Audacity geschnitten.

Postproduction


Werkzeuge:

Windows Movie Maker

Arbeitsschritte:

Zusammenführen der Videodatei mit den beiden Audiodateien. Dabei wird die Lautstärke der Musik angepasst, sodass der Audiokommentar gut zu hören ist und die einzelnen Audiokommentare bildgenau unter die einzelnen Szenen gelegt. Außerdem erfolgte eine nachträgliche Anpassung der Dauer der Einzelbilder, um sie auf den Audiokommentar optimal abzustimmen. Abschließend erfolgt das Rendering des Videos durch Export in das mp4-Format.

Storyboard

Videos rundum IM: Kompetenzfelder im Studiengang IM

Kompetenzfelder im Studiengang IM

Im Studiengang Informationsmanagement an der Hochschule Hannover sind im Rahmen des Kurses Entwicklung von Multimediasystemen I (Wintersemester 2017/18, Prof. Dr.-Ing. Steinberg) einige sehr gute Videos rundum das Studium Informationsmanagement und das studentische Leben an der Expo Plaza in Hannover entstanden. Dabei wurden unterschiedliche, klassische Techniken wie z.B. Erklärvideo, Legetechnik oder Stopmotion verwendet.

Die besten Videos stellen wir euch hier nach und nach vor. Heute:

Autoren: Charlotte Schröer, Franziska Altemeier

Kompetenzfelder im Studiengang IM

Idee / Zielsetzung

Ziel unserer Animation ist es, die Kompetenzfelder des Studiengangs Informationsmanagement an der Hochschule Hannover zu erläutern. Im Rahmen des neuen Curriculums wurden die sogenannten Kompetenzfelder eingeführt, von denen jeder Studierende zwei belegen muss. Gerade jetzt, wo die ersten Studierenden ihre Kompetenzfelder wählen müssen, macht ein Erklärvideo, das die Inhalte und Möglichkeiten der einzelnen Bereiche kurz und bündig erläutert, Sinn.

Welche Kompetenzen für welches Kompetenzfeld benötigt werden, was in welchem Feld gelernt werden kann, das soll in unserem Erklärvideo auf den Punkt gebracht werden.

Arbeitsschritte / Arbeitsweg

Unser erster Arbeitsschritt nach der Entwicklung einer grundlegenden Idee war die Erstellung eines Storyboards. Dieses hat uns geholfen, die vielen Informationen, die uns zu unserem Thema zur Verfügung standen, zu reduzieren und Kernaussagen zu formulieren.

Anhand des Storyboards konnten wir unsere Informationen visualisieren, in sinnvolle Abschnitte aufteilen und eine grobe Reihenfolge festlegen.

Software

Da wir unsere Animation in Form eines Erklärvideos umsetzen wollten, haben wir uns insbesondere die im Unterricht vorgestellte Software speziell für Erklärvideos hinsichtlich verschiedener Aspekte verglichen. Diese waren GoAnimate, VideoScribe und Powtoon.

GoAnimate bietet eine 14-tägige kostenfreie „trial period“ an. In dieser Zeit hat man den vollen Zugriff auf alle Angebote, die auch die Premium Version hätte, allerding mit dem Unterschied/der Einschränkung, dass alle Videos mit Wasserzeichen versehen sind und die erstellten Videos lediglich geteilt, nicht aber heruntergeladen werden können.

GoAnimate bietet insgesamt drei verschiedene Nutzungsmodelle, die alle kostenpflichtig sind. Wollen mehrere Personen Videos kreieren, ist man gezwungen, die kostenintensivste Version „GoTeam“ für $159 pro Monat zu nutzen.

Aufgrund der Preisregelung und der Tatsache, dass wir als zwei Personen an die „GoTeam“-version gebunden gewesen wären, war die Software für uns keine ernsthafte Option. Hätte man die 14-tägige „trial period“ nutzen wollen, wäre man zudem zeitlich sehr eingeschränkt gewesen, da man auf die Videos nur zugreifen kann, wenn man einen Account hat

Unsere zweite Option VideoScribe bietet ebenfalls eine Trial Version an, die jedoch nur sieben Tage gültig ist. Als einzelner Nutzer kann man verschiedene Zahlungspläne wählen. Man kann einmalig 480 Euro zahlen, ein Jahresplan, bei dem 132 Euro gezahlt werden und eine Zahlung per 20-Euro- Monatsraten. VideoScribe bietet außerdem Team-Lizenzen an, die preiswerteste Version liegt hier bei 115 Euro pro Nutzer. Aufgrund der Kosten war VideoScribe keine Option für uns, insbesondere da die kostenfreie Trial Version noch kürzer ist als bei GoAnimate.

Im Gegensatz zu VideoScribe und GoAnimate bietet Powtoon eine dauerhafte Gratis-Version. Diese hat ein paar Einschränkungen, so sind z.B. alle Videos mit Wasserzeichen versehen und auch die Bildqualität ist (beim Export zu Youtube) eingeschränkt. Die Arbeit fällt einem mit Powtoon auch als Laie nicht schwer, da alles sehr übersichtlich und verständlich aufgebaut ist und erklärt wird. Sehr positiv war vor allem, dass man bei Powtoon auch gut als Team arbeiten kann. So kann man beispielsweise ein Video an einen weiteren Powtoon-Nutzer schicken und so kollaborativ an einem Projekt arbeiten.

Bei der Erstellung von Videos bietet Powtoon viele Formen, Symbole und Styles, die auch in der freien Version implementiert sind. Außerdem können auch eigene Bilddateien eingefügt werden.

Des Weiteren ermöglicht Powtoon die Einbindung einer Audiospur. Für die Audiospur haben wir zunächst ein Skript erstellt. Dies haben wir anhand des Inhaltes der einzelnen Folien in Powtoon ausgerichtet. Powtoon arbeitet ähnlich wie Powerpoint mit Folien, sodass es möglich ist, für jede Folie eine eigene Audiodatei hinzuzufügen. Ein Schneiden der Audiospur entfällt.
Die Audioaufnahmen haben wir mit Hilfe der App MP3 recorder aufgenommen. Wir haben uns für diese App entschieden, da sie die Audiodateien im mp3 Format abspeichert und einen Export zu Google Drive ermöglicht. Über Google Drive haben wir die Aufnahmen anschließend gespeichert und bei Powtoon hochgeladen. Die Lautstärkeeinstellungen der Audiodateien können dann direkt beim Voiceover in Powtoon angepasst werden.

Insgesamt hat sich Powtoon als sehr nützlich und für unsere Anforderungen passend herausgestellt. Die Gratis-Version bietet umfangreiche Features. Insbesondere die Möglichkeit, kollaborativ an dem Video arbeiten zu können, war sehr hilfreich. Leider müssen in der Gratis-Version Abstriche bei der Qualität hinsichtlich des Youtube-Exports gemacht werden.

Das fertige Produkt, unser Video „Kompetenzfelder im Studiengang IM“, könnt ihr hier anschauen.
Außerdem findet ihr hier unser Storyboard:

Storyboard