Mittwoch, 15. Mai 2013

Twoday-Tipp #1 - Backstretch

2daychange.jpg

Nicht, dass hierüber irgendwelche Zweifel aufkommen: Form follows Function und Content geht vor Layout. Aber der eingeschlafene, selbst-konservierende Twoday-Blog-Alltag mit der Innovationsintensität eines ZDF-Fernsehgartens verdient wirklich jede Bemühung, vehement für ein wenig Farbe, Gestaltung und - schreien wir es müde heraus - Veränderung zu werben.

Doch wollen wir nicht unmäßig rumquengeln, denn es bleibt immerhin zu konstatieren, dass Twoday die Plattform in der kargen Free-Variante kostenfrei bereitstellt und man das CMS durch Modifikation der zugrunde liegenden HTML- & CSS-Dateien durch eigene Hände Arbeit doch weitgehend nach individuellen Wünschen gestalten kann - wenn man denn will.

Daneben gibt es noch weitgehend unbekannte Perlen wie etwa die in Twoday aktivierbare jQuery-Komponente, eine Standard-Javascript-Bibliothek, auf welcher wiederum viele freie und nützliche Zusatzscripte basieren, mit deren Hilfe sich das eigene Blog weiter pimpen lässt.

CSS, jQuery, Scripte, das alles klingt komplizierter, als es wirklich ist. In dieser neuen Rubrik werde ich periodisch Lösungen vorstellen, die helfen sollen, die bislang überschaubaren Gestaltungsoptionen eines Twoday-Bloggers etwas zu vermehren.

Als kleines Beispiel dafür, was mit dem Einsatz von jQuery auf Twoday möglich wird, stelle ich heute "Backstretch" vor.

Einsatzmöglichkeiten

Was ist "Backstretch"?

script/backstretch.jpg

Einfach gesagt, füllt Backstretch jedes HTML Blockelement mit einem vorgegebenen (Hintergrund-)Bild.

Wird dieses Element durch den Nutzer verkleinert, passt Backstretch die Größe des Hintergrundbildes automatisch an ("responsives Verhalten"). Bei bestimmten Ereignissen kann Backstretch auf Wunsch angezeigte Hintergrundbilder ändern. Auch verschiedene, in Zeitabständen wechselnde Bilder (Slideshows, Gallerien) sind möglich.

Anwendungsbeispiele

Dies ist ein einfaches, selbst definiertes DIV-Element mit einer festgelegten Breite und Höhe. Schon beim Laden der Webseite erhält es durch Backstretch ein vorgegebenes Hintergrundbild.

Das Bild lässt sich ereignisgesteuert auswechseln, z.B. durch Klick auf eine Schaltfläche.

Auch der Start einer zeitgesteuerten Anzeige von beliebig vielen Bildern ist möglich.

Natürlich beschränkt sich die Anwendung von Backstretch nicht nur auf selbstdefinierte Blockelemente in einem Beitrag, sondern kann auch DIV-Elemente des Twoday-Templates selbst verändern.

Damit ergibt sich z.B. die sehr kundenorientierte Möglichkeit, Ihren besonders verdienten Twoday-Abonnenten jederzeit eine Blogatmosphäre anzubieten, in denen sie sich ganz besonders wohl fühlen:




Installation

1. jQuery aktivieren

script/jquery.jpg

jQuery ist ein Quasi-Industriestandard und umfasst sehr nützliche Basisfunktionen für die Analyse und Änderung von Webseiteninhalten mittels Javascript. Mit jQuery und speziellen, darauf aufbauenden Scripten wird es für Twoday-Nutzer sehr einfach, auch durchaus komplexere Funktionalitäten in ihr Blog zu integrieren.

Falls Sie jQuery noch nicht aktiviert haben, müssen Sie dies als ersten Schritt durchführen:

  1. Melden Sie sich in Twoday mit Ihrer Kennung an und klicken dann in Ihrem Blog oben auf AdminModuleExtension Module
  2. Klicken Sie beim Eintrag "JQuery Integration" (ganz unten) auf Einstellungen und stellen Sie den Auswahlwert auf "ja".
  3. Sichern Sie Ihre Änderung. Damit ist jQuery als zugrunde liegende Basiskomponente aktiviert und wird beim nächsten Aufruf Ihres Blogs automatisch mit eingebunden. Die Durchführung dieser Aktivierungsschritte ist nur einmalig erforderlich!

2. Backstretch integrieren

Um Backstretch nutzen zu können, müssen Sie es als Script in Ihre Twoday-Webseite einbetten. Führen Sie dazu einmalig folgende Schritte aus:

  1. Melden Sie sich in Twoday mit Ihrer Kennung an und klicken dann in Ihrem Blog oben auf
    AdminVorlagen HTMLHauptseite (Site.page)
  2. Scrollen Sie im Textfeld nach unten und positionieren Sie den Cursor (per Klick) direkt vor das HTML-Tag </body>
  3. Fügen Sie dort die folgenden zwei Zeilen ein:
    <!-- Backstretch Script -->
    <script src="https://cdn.jsdelivr.net/jquery.backstretch/2.0.4/jquery.backstretch.min.js"></script>
  4. Klicken Sie anschließend auf Speichern und Schließen um Ihre Änderung zu sichern. Damit ist die Backstretch-Komponente bereits einsatzfähig. Im nächsten Schritt werden die Instruktionen für Backstretch erstellt.

Anwendung

Einem Blockelement ein Bild zuweisen

Um einem bestimmten HTML-Blockelement ein Hintergrundbild mit Backstretch zuweisen zu können, ist es wichtig, dass dieses über eine eindeutige Kennung (ID) verfügt.

Beispiel:  <div id="meinekennung"></div>

Die meisten von Twoday definierten Template-Blockelemente besitzen i.d.R. eine ID oder Klassenzuordnung. Für eigene Blockelemente (z.B. in einem Blogbeitrag) sollten Sie auch eine eindeutige ID vergeben. Eindeutig heißt, dass auf Ihrer angezeigten Twoday-Webseite kein zweites Element dieselbe ID besitzt.

Im ersten Beispiel definieren wir im Text ein Blockelement (DIV) und weisen diesem per Backstretch ein Bild zu (siehe HTML und Javascript Tab).

Zur besseren Übersicht kann man sich das Zusammenspiel der einzelnen Komponenten auch in jsFiddle ansehen: Beispiel #1

<p>Im Beitragstext wird ein leeres weißes Blockelement (Breite 300 Pixel, Höhe 200 Pixel) definiert:</p>
<div id="twins" style="width:300px;height:200px;background:white;">
<p style="text-align:center;color:white;">Text im Blockelement mit der ID "twins"</p>
</div>
<script type="text/javascript">
$("#twins").backstretch("https://dl.dropboxusercontent.com/u/16775880/images/twintowers.jpg");
</script>

Dieses Script fügen Sie in der Hauptseite (Site.page) ein, und zwar direkt hinter die Zeile, mit der das Backstretch-Script eingebettet wurde (siehe 'Installation').

Eine Bildergallerie anzeigen

Zur Aktivierung der Galleriefunktion übergibt man Backstretch mehrere, durch Komma getrennte und in eckige Klammern eingebettete Bildadressen sowie verschiedene Zusatzparameter, die festlegen, wie die Bildabfolge ablaufen soll:

  1. duration:nnnn Anzeigedauer eines Bildes in ms (nnnn)
  2. fade:nnnn Überblendedauer in ms (nnnn)

Auch hierzu gibt es ein zugehöriges jsFiddle: Beispiel #2

<div id="bildgallerie"></div>
$("#bildgallerie").backstretch( [
	"https://dl.dropboxusercontent.com/u/16775880/images/obst.jpg",
	"https://dl.dropboxusercontent.com/u/16775880/images/erdbeeren.jpg",
	"https://dl.dropboxusercontent.com/u/16775880/images/beeren.jpg" ],
	{duration: 2000, fade: 750});
// Kommentar: 3 Bilder, Anzeigedauer jeweils 2 Sekunden, Übergang in 750ms

Eine Gallerie im Hintergrund der Webseite

Eine Bildergallerie ist nicht auf selbstdefinierte Blockelemente beschränkt. Prinzipiell kann man jedes Blockelement, das eine eindeutige ID besitzt, von Backstretch mit Hintergründen versorgen lassen. Will man den gesamten Hintergrund der Webseite ausfüllen, lässt man den Selektor einfach weg.

Das zugehörige jsFiddle: Beispiel #3

$.backstretch( [
	"https://dl.dropboxusercontent.com/u/16775880/images/twintowers.jpg",
	"https://dl.dropboxusercontent.com/u/16775880/images/bigben.jpg" ],
	{duration: 3000, fade: 1500});
// Kommentar: 2 Bilder, Anzeigedauer jeweils 3s, Übergang in 1.5s

Ereignisgesteuerte Hintergrundänderung

Backstretch-Anweisungen zur Änderung eines Hintergrundes können nicht nur automatisch beim Laden der Webseite ausgeführt werden, sondern nach Bedarf an bestimmte Ereignisse gekoppelt werden.

In diesem Beispiel verwende ich eine (stark) vereinfachte HTML-Struktur eines Twoday-Blogs mit zwei Beiträgen. Die Überschriften in Twoday-Blogbeiträgen (Element "h3") besitzen die CSS-Klasse "storyTitle" - sie können also einfach über den jQuery-Selektor "h3.storyTitle" für Veränderungen ausgewählt werden.

Nach dem Klick auf einen Button werden die Hintergründe aller "h3.storyTitle"-Überschriften durch Backstretch mit einer Grafik hinterlegt. Hier das entsprechende jsFiddle: Beispiel #4

Es gibt viele definierte Blockelemente in Twoday-Blogs, denen man mittels Backstretch einen einmaligen oder wechselnden Hintergrund zuweisen kann, so z.B.

  • div#container Eigentlicher Seiteninhalt (Text und Sidebars)
  • div#content Gesamtheit der angezeigten Blogbeiträge
  • div.story Ein einzelner Blogbeitrag
  • div.storyContent Textbereich des Blogbeitrags
  • div.storyDate Autor und Erstellungsdatum
  • div.storyLinks Links und Anzahl Kommentare
  • div#sidebar01 Sidebar-Module
  • und viele mehr.
$("#btnGrafikAktivieren").click(function(e) {
e.preventDefault();
$("h3.storyTitle").backstretch("https://dl.dropboxusercontent.com/u/16775880/images/headerbg.jpg");
});

Tageszeitabhängiger Hintergrund

Kann man dem eigenen Twoday-Blog beibringen, das angezeigte Hintergrundbild (wie auf manchen Smartphone-Widgets) tageszeitabhängig zu ändern? Yep, wenn auch hierzu ein Handvoll mehr Javascript-Zeilen erforderlich sind. Hier das entsprechende jsFiddle: Beispiel #5

Falls Sie das Script ausprobieren möchten, kopieren Sie es inkl. einleitendem <script type="text/javascript"> und schließendem </script>-Tag in die Hauptseite (Site.page), und zwar direkt hinter die Zeile, mit der das Backstretch-Script eingebettet wurde (siehe 'Installation'). Führen Sie außerdem folgende Script-Anpassungen durch:

  1. Ändern Sie die Bildadresse (URL) in der Variablen bildurl auf die Adresse, unter der Ihre tageszeitabhängigen Bilder zu finden sind.
  2. Ändern Sie die Variable bildervonbis dahingehend ab, dass in jeder Zeile ein Bildname, die Beginnstunde der Anzeige und die Bis-Stunde der Anzeige - jeweils durch Komma getrennt - aufgeführt sind.
  3. Das Script legt die Bilder per $.backstretch(..) vollflächig auf den gesamten Webseitenhintergrund. Wollen Sie die zeitabhängigen Bildwechsel in einem anderen Blockelement durchführen, müssen Sie die Backstretch-Anweisung anpassen: z.B. $("#meinbildbereich").backstretch(..).

Vertiefende Lesequellen

jQuery Dokumentation (EN)
jQuery Einführung und Grundlagen (DE)
Backstretch Script-Dokumentation von Scott Robin (EN)
Backstretch Script-Dokumentation auf GitHub (EN)

Fragen und/oder Feedback gerne hier oder per Mail. Viel Spaß beim Twoday-Pimpen! ;)

Außergewöhnliches
Dinge, die gut sind
Entgleisungen
Gemalte Lebenserfahrung
Musik
Nachtgedanken
Neon-Award
Neon's Must-Have-Tools
Neon's Top10 List
Schöner Bloggen
Today I Learned
Wort des Tages
Profil
Abmelden
Weblog abonnieren
Meine Layouts
Meine bearbeiteten Skins
Hauptseite (Site.page)
Toolbar (Site.foundationToolbar)
Github Neon
Gitlab twoday.net
Font Awesome Cheatsheet v4