Sprung zum Inhalt

Webdesign nach Maß von webdesign weisshart

Mein Blog

RSS Feed AbonnementRSS 2.0 Feed

zum Archiv und den Kategorien

Countdown zum Reload

Freitag, 24. Juni 2016

Die Seite sms2web.php mit dem Ticker kann nach einer konfigurierbaren Mindestzeit neu geladen werden, um die Anzeige des Tickers zu aktualisieren.
Die bis zum möglichen Reload verbleibende Zeit wird angezeigt.

tl;dr Weil ich danach gefragt wurde, hier eine Gebrauchsanweisung für Interessierte: weiterlesen…


Fullscreen Videos auf iPhone automatisch schließen

Sonntag, 3. April 2016

Von YouTube lernen. Ja, das ist möglich.
Doch der Reihe nach:
Das HTML5 <video> Element erzeugt Videos, die auf der Webseite eingebettet sind. Nach dem Betätigen des Startbuttons laufen die Videos innerhalb der Seite.
Nicht so auf dem iPhone. Dort werden alle Videos automatisch und zwangsweise als Vollbild dargestellt. Auf den relativ kleinen Bildschirmen macht das Sinn.
Unschön ist allerdings, dass nach dem Beenden des Videos das Vollbild mit den Bedienungselementen geöffnet bleibt. Man muss also manuell auf den Link "Fertig" oder das Symbol zum Verkleinern rechts unten tippen, um zur aufrufenden Webseite zurückzukehren.
Das ist nervig, und kann irritierend sein. Ein Zustand, der vom Betriebssystem automatisch hergestellt wird, sollte auch automatisch beendet werden, wenn die Voraussetzung nicht mehr gegeben ist.

Dass es auch besser geht, zeigt YouTube. Eingebettete YouTube-Videos werden natürlich auf iPhones ebenfalls als Vollbild dargestellt; aber nach dem Beenden schließt sich das Vollbild automatisch, und die aufrufende Seite wird wieder angezeigt.

Ich hab' mal ein paar Zeilen JavaScript geschrieben, um das meines Erachtens korrekte Verhalten auch bei HTML5 <video> Elementen zu erreichen. Die folgende Funktion bewirkt das automatische Beenden des Vollbildmodus' am Ende des Videos.

function CloseVideo() {
if (navigator.platform.match(/iPhone|iPod|Android/)) {
var e = document.getElementsByTagName('video').length;
for (var i = 0; i <= e; i++) {
document.getElementsByTagName('video')[i].webkitExitFullscreen();
}
}
}

Aufruf der Funktion im <video> Element mit onended=CloseVideo() im <video> Element, also z. B.:
<video controls onended=CloseVideo() ...

Demo z. B. auf der Seite webdesign.weisshart.de/homelink.php


JavaScript async

Montag, 23. November 2015

Seit HTML5 gibt es für JavaScript das Attribut async:
<script src="demo.js" async></script>
Nur: Wozu genau dieses Attribut dient, war mir nie so recht bewusst. Bis gestern.

Ich setze auf mehreren Kundenseiten ein Widget von HolidayCheck ein.

Screenshot
Das Widget zeigt nicht nur einen statischen Banner, sondern auch aktuelle Informationen. Hier beispielsweise die Gesamtbewertung 5.6 "Sehr gut".

Aber HolidayCheck war nicht erreichbar.
Der Ausfall von HolidayCheck führte dazu, dass auf die Ausführung eines JavaScripts von HolidayCheck gewartet wurde. Vergeblich. Währenddessen wurden weitere Seiteninhalte nicht geladen. Dadurch fehlte beispielsweise das Navigationsmenü. Die Site war unbenutzbar!

Abhilfe: Siehe oben: async.
Auf w3schools.com ist genau beschrieben, was async macht:

If async is present: The script is executed asynchronously with the rest of the page (the script will be executed while the page continues the parsing)

Wer lesen kann, ist klar im Vorteil. :-)


Testet denn keiner

Donnerstag, 19. Juni 2014

… seine neue Website auch auf Smartphones, und auch in der freien Wildbahn, d. h. außerhalb von W-LAN, LTE und UMTS?
Anscheinend nicht. Wie sonst könnten Entwickler stolz auf ihr modernes Responsive Design verweisen, und dann eine 1,5 MB schwere Startseite anbieten?
Wozu brauch' ich ein für Smartphones optimiertes Design, wenn ich die Site unterwegs nicht öffnen kann, weil ich gar nicht so lange Zeit habe, wie die Startseite zum Laden braucht, wohl aber mein Datenvolumen schon einmal durch den vergeblichen Versuch mit 1 MB belastet wird.

So, genug Dampf abgelassen.
Kommen wir zu praktischen Empfehlungen.
Bilder sind der Bösewicht Nr. 1, wenn es um Seitengröße geht. Dabei gibt es wirklich genügend Tools, um Bilder optimal zu verschlanken, ohne die Qualität zu opfern. Ich zähle nur mal auf:

  • Bilder vor der Verwendung im Web auf passende Größe bringen, und nicht den Browser dazu missbrauchen. (Das sollte eigentlich selbstverständlich sein.)
  • Wahl des passenden Dateiformats (.png oder .jpg je nach Motiv)
  • Wahl der Optimalen Kompressionsstufe. Hier hilft nur Probieren, Beurteilen und Optimieren.
  • Alle Metadaten raus! (Das kann z. B. Photoshop beim „Abspeichern für Web“)
  • Kompressionstools verwenden. Z. B. ImageOptim für .jpg, oder ImageAlpha für .png
  • Adaptive Images einsetzen

Und jetzt ein ganz heißer Tipp speziell für Smartphones:

Bilder werden normalerweise beim Aufruf einer Seite heruntergeladen, und kosten damit Ladezeit und Transfervolumen, auch wenn Sie „above the fold“ auf dem kleinen Bildschirm gar nicht angezeigt werden, sondern erst beim Herunterscrollen.

Dagegen gibt es ein geniales jQuery-Addon: Lazyload

Lazyload wird mit einer Zeile Code aufgerufen:
$("img.lazy").lazyload({effect : "fadeIn"});
ist minified und gzipped gerade mal 1 kB groß, und es tut wirklich, was es verspricht. Bilder werden erst geladen, wenn Sie gebraucht werden, d. h. durch Scrollen in den sichtbaren Bereich geraten.
Letzteres ist wörtlich zu nehmen, und offenbart eine Schwäche von Lazyload. Um Bilder anzuzeigen, die bereits auf dem Startbildschirm liegen, muss gescrollt werden, und wenn es auch nur ein Tick ist.
Aber auch dagegen gibt es ein Mittel: Eine Zeile JavaScript, wie hier auf stackoverflow beschrieben.
$('body,html').scroll();

Ich hab's getestet, und es funktioniert. Warum nur wird so eine geniale Technik nicht allgemein eingesetzt? Es gibt doch auch Menschen, die auf ihrem Desktop dankbar sind für jedes kB, das sie nicht unnötig laden müssen.


Media Queries und JavaScript

Sonntag, 11. November 2012

Media Queries und JavaScript? Was hat das miteinander zu tun?

[Wikipedia:]

Bei Media Queries handelt es sich um ein Konzept, welches mit CSS3 eingeführt wurde und das Prinzip des Medientyps in CSS2 erweitert. Anstatt starr zu definieren, welches Medium das Zielmedium ist, können mit Media Queries die Eigenschaften des aktuellen Gerätes direkt abgefragt werden.

Mit Media Queries werden CSS Stylesheets oder einzelne CSS Anweisungen gezielt je nach den im aktuellen Gerät verfügbaren Eigenschaften (z. B. Monitorgröße) vergeben. Grundvoraussetzung für Responsive Design.
Was aber, wenn abhängig vom Client nicht nur CSS-Eigenschaften vergeben, sondern z. B. JavaScript ausgeführt werden soll?
Hier hilft ein Trick:
Mittels getComputedStyle und getPropertyValue können einzelne Style Deklarationen abgefragt werden.
Nehmen wir an, per Media Queries wurde ein CSS Stylesheet aufgerufen mit folgender Deklaration:

body {max-width:320px;}

Dann lässt sich die Eigenschaft max-width des body-Elements mit folgendem JavaScript auslesen und abhängig davon JavaScript Code ausführen:

<script type="text/javascript">
var mod = window.getComputedStyle(document.body).getPropertyValue('max-width');
if (mod == '320px') {
… auszuführender JavaScript Code
}
</script>

Hinweis: Der Internet Explorer versteht diese Syntax (ebenso wie Media Queries) erst ab Version 9.


Die Telekom (D?) macht Webseiten auf mobilen Geräten kaputt.

Freitag, 24. Februar 2012

Die Deutsche Telekom hilft Nutzern von Smartphones beim Gebühren sparen für mobile Datennutzung. Um jeden Preis. Auch um den Preis, dass Telekom Kunden unterwegs nur verstümmelte Webseiten sehen.
Doch langsam:
Anscheinend optimiert verschlimmbösert die Telekom JavaScript Dateien, wenn Daten über das Mobilfunknetz übertragen werden. Die Folge: manche Seiten mit JavaScript funktionieren nicht, wenn im Mobilfunknetz gesurft wird - egal, ob Edge oder 3G - wohl aber, wenn das Smartphone in einem WLAN eingebucht ist. Das hat nichts mit der Geschwindigkeit der Datenübertragung zu tun. Telekom ändert die Daten. Ohne den "Absender" zu fragen.
Ein Beispiel gefällig:
Die Klappfunktion für die Navigation auf dieser Site hier funktioniert im WLAN, nicht jedoch im Mobilfunknetz der Telekom.
Dass ich kein Phantom jage, zeigen folgende englischsprachige Quellen:
http://www.theregister.co.uk
http://www.mysociety.org
http://support.t-mobile.co.uk/help-and-support

Ich werde mal versuchen, ein Statement der Telekom zu dieser Thematik zu erhalten.


JavaScript und der Platzmangel auf kleinen Smartphone-Displays

Montag, 4. Oktober 2010

Mit dem iPhone kann man sehr gut im Web surfen. (Welch banale Aussage!) Was liegt also näher, als meine eigene Site auch ein wenig ans iPhone (und natürlich andere Smartphones) anzupassen. Mit CSS und einer Abfrage des User Agent ist das ja schließlich kein Problem. Bleibt das Problem der Bildschirmgröße. Im Falle von webdesign.weisshart.de ist auf jeder Seite erst einmal nur das relativ umfangreiche Navigationsmenü zu sehen, und erst Scrollen (oder Antippen des Skiplinks) zeigt den Inhalt der Seite. Nicht sehr elegant.
Screenshot mit Menü

Aber Abhilfe ist nicht fern.
Vor einem Jahr habe ich eine Technik vorgestellt, Bereiche auf Webseiten per JavaScript ein- und auszublenden. Nichts spricht dagegen, zu dieser Technik zu greifen; auch und vor allem, weil das Script die Technik der "Graceful Degradation" einsetzt. Falls JavaScript nicht verfügbar ist, werden die ausgeblendeten Bereiche immer angezeigt. Es geht also keine Information verloren. Im Falle einer Seitennavigation ist dies natürlich absolut unverzichtbar.
Die Technik funktioniert ohne jegliche Anpassung sofort auf einem Touchscreen. Eine Lösung mit CSS-hover könnte dies nicht ohne weiteres. Auf Touchscreens gibt es keine Maus, und ohne Maus gibt es kein hover.
Screenshot mit zugeklapptem Menü

Das sieht doch gleich viel aufgeräumter aus.

Keine Überraschung war, dass VoiceOver (der Screen Reader des iPhone) mit der Technik anstandslos klar kommt. Ebenso wie auch Screen Reader unter Windows.

Soundbeispiel 1: VoiceOver liest die Startseite mit "zugeklappter Navigation", also im default-Zustand nach Aufruf der Seite. Bitte das "Plus" bei ca. 0:10 Min. beachten.


Audio Download des Hörbeispiels (mp3 - 237 kB)

Mit dem iPhone kann man sehr gut im Web surfen. (Welch banale Aussage!) Was liegt also näher, als meine eigene Site auch ein wenig ans iPhone (und natürlich andere Smartphones) anzupassen. Mit CSS und einer Abfrage des User Agent ist das ja schließlich kein Problem. Bleibt das Problem der Bildschirmgröße. Im Falle von webdesign.weisshart.de ist auf jeder Seite erst einmal nur das relativ umfangreiche Navigationsmenü zu sehen, und erst Scrollen (oder Antippen des Skiplinks) zeigt den Inhalt der Seite. Nicht sehr elegant.
Screenshot mit Menü

Aber Abhilfe ist nicht fern.
Vor einem Jahr habe ich eine Technik vorgestellt, Bereiche auf Webseiten per JavaScript ein- und auszublenden. Nichts spricht dagegen, zu dieser Technik zu greifen; auch und vor allem, weil das Script die Technik der "Graceful Degradation" einsetzt. Falls JavaScript nicht verfügbar ist, werden die ausgeblendeten Bereiche immer angezeigt. Es geht also keine Information verloren. Im Falle einer Seitennavigation ist dies natürlich absolut unverzichtbar.
Die Technik funktioniert ohne jegliche Anpassung sofort auf einem Touchscreen. Eine Lösung mit CSS-hover könnte dies nicht ohne weiteres. Auf Touchscreens gibt es keine Maus, und ohne Maus gibt es kein hover.
Screenshot mit zugeklapptem Menü

Das sieht doch gleich viel aufgeräumter aus.

Keine Überraschung war, dass VoiceOver (der Screen Reader des iPhone) mit der Technik anstandslos klar kommt. Ebenso wie auch Screen Reader unter Windows.

Soundbeispiel 1: VoiceOver liest die Startseite mit "zugeklappter Navigation", also im default-Zustand nach Aufruf der Seite. Bitte das "Plus" bei ca. 0:10 Min. beachten.

Audio Download des Hörbeispiels (mp3 - 237 kB)

Nun wird das Pluszeichen angetippt. VoiceOver liest weiter, und "sieht" jetzt auch das Navigationsmenü. (Das Minus zu Beginn der Aufnahme würde beim Antippen das Navigationsmenü natürlich wieder schließen.)

Audio Download des Hörbeispiels (mp3 - 171 kB)

Schön, wenn barrierefreie Seiten ohne großen Aufwand auch auf Geräten funktionieren, die es zur Zeit der Entstehung der Site noch gar nicht gab.


Anzeigen und verbergen von Bereichen mit JavaScript

Freitag, 11. September 2009

Manchmal möchte man Bereiche auf einer Webseite erst bei Bedarf anzeigen, die Seite soll erst einmal übersichtlich und aufgeräumt sein. Erst nach einem Klick sollen Details gezeigt werden.
Eine barrierefreie Lösung auf Basis von JavaScript beschreibe ich in diesem Artikel
Ich freue mich auf Kommentare - direkt im Artikel! (die Kommentarfunktion hier ist gesperrt).


Auswahllisten mit der Tastatur bedienen

Montag, 27. Juli 2009

Auswahllisten (Ausklapplisten / <select>) dienen dazu, dem Anwender eine Liste mit festen Einträgen anzubieten, aus der er einen Eintrag auswählen kann. Der Text des ausgewählten Eintrags wird übertragen, wenn der Anwender das Formular abschickt.
Zum Abschicken gibt es einen eigenen Button, z. B. <input type="submit" … >
Wenn nun das Formular als einziges Element eine Auswahlliste enthält (typisches Beispiel: ein Style Switcher), dann ist es lästig, den Submit Button anzusteuern und zu betätigen.
Pfiffiger wäre es, die Auswahl mit Enter bestätigen zu können.
Hier kommt Javascript mit dem Event Handler onchange zu Hilfe.
Beispiel:

<select name="titel" size="1" onchange="this.form.submit()" >

Wunderbar.
Aber:
Versuchen Sie mal, eine solchermaßen aufgepeppte Auswahlliste im Internet Explorer ohne Maus, also nur mit der Tastatur, zu bedienen. Ich habe für Ihre Versuche ein Muster zum Testen erstellt. Dieses Muster beinhaltet konsequenterweise keinen Submit Button. (In der Praxis würde ich den jedoch sicherheitshalber belassen.)
Und was passiert da? Es gelingt bei ausschließlicher Tastaturnutzung nicht, einen der angebotenen Einträge auszuwählen, weil das Formular sofort beim Versuch, innerhalb der Auswahlliste mit den Pfeiltasten nach unten zu gehen, abgeschickt wird. Dabei wird dann immer der zweite Eintrag in der Liste "Michael Jackson" gewählt.
Es sei denn, Sie wissen, wie man das mit dem Internet Explorer macht:

  1. Mit der Tab Taste den Fokus auf die Auswahlliste setzen.
  2. Die Auswahlliste mit "Alt+Pfeil nach unten" öffnen.
  3. Mit den Pfeiltasten (nach unten / nach oben) innerhalb der ausgeklappten Liste navigieren.
  4. Enter

Und jetzt die Preisfrage: Wer wusste das?

Mir jedenfalls ist das zu riskant. Ich befürchte, zu viele Besucher mit dieser Technik auszuschließen.
Ich werde also in der praktischen Anwendung dem Internet Explorer ein Formular ausliefern ohne den onchange event handler. (Das geht ja recht zuverlässig mit conditional comments.)


Java ist NICHT Javascript

Samstag, 28. März 2009

Nicht auszurotten ist der Glaube, Java und Javascript seien identisch.

Nun finde ich sogar ein Lerntutorial des Lehrstuhls für Nachrichtentechnik der Technischen Universität München das auf geradezu geniale Weise die beiden Begriffe durcheinander wirft:
http://www.lntwww.de/JavaAnleitung.html
Ich habe den Artikel nicht verlinkt, um nicht noch weitere Links auf diese - sicher gut gemeinte - Desinformationsseite zu setzen.

Gleich der erste Satz lautet:

Falls bei Ihnen noch kein Javascript installiert ist, laden Sie von http://www.java.com/de/download/manual.jsp das Javascript-Plugin der Firma "Sun Microsystems" herunter.

Und weiter:

Das Javascript-Plugin … wird folgendermaßen aktiviert:
Wählen Sie bei Windows in der Systemsteuerung das Symbol "Java Plug-In" aus.

Muss ich es wirklich sagen?
Es gibt kein Javascript-Plugin. Und gleich gar nicht von der Firma Sun Microsystems!

Ich habe die Autoren gebeten, diesen Artikel zu überarbeiten, und bin neugierig auf die Reaktion.

28.03.09:
Die Antwort ist da. Ich zitiere in Auszügen.

… dass nur von Javascript die Rede ist.
… Nur ein einziges Mal kommt JAVA vor, nämlich beim Link. Ich kann allerdings auch nichts dafür, dass die Website http://www.java.com heißt.
Das ist alleinig das Problem von SUN Microsystems, dem Hersteller.

Nein, ich wiederhole nicht, was die Firma Sun Microsystems herstellt, und auf der genannten Seite zum Download anbietet.
Aber ich wiederhole:
Java und Javascript haben nichts miteinander zu tun.

28.03.09 16:47 Uhr

Sehr geehrter Herr Weisshart,

habe die vermeintliche Seite nochmals überprüft und es handelt sich tatsächlich um eine sehr sehr veraltete und zudem fehlerhafte Beschreibung.

Habe diese Beschreibung von unserem Server genommen!!!

Mit freundlichen Grüßen,

Na also.


Warum Cross Site Scripting wirklich ein Problem ist.

Dienstag, 3. Juni 2008

Haben Sie sich auch schon mal gefragt, warum Cross Site Scripting (XSS) so schlimm sein soll? Die gängigen XSS-Demos verunstalten Seiten oder geben seltsame Meldungen aus nicht gerade weltbewegend. Deshalb demonstriert dieser Artikel, wie XSS mit einfachsten Mitteln zum Beispiel Ihr Passwort klauen kann, während Sie es auf einer echten Login-Seite eingeben.

Der Artikel vom 10.08.2007 bei Heise
Eine böse Sache, die wirklich zum Nachdenken anregt. Vor allem das Fazit des Artikels:

Abhilfe? Das ist richtig schwierig! …


Fade in - Fade out per Javascript

Dienstag, 4. März 2008

Sanftes Ein- und Ausblenden von Grafiken - und anderen Inhalten. Von Flash Animationen wohl bekannt, oder auch mit Hilfe von Java Applets.

Wer auf beide Techniken verzichten will, und im Netz nach alternativen Möglichkeiten sucht, stößt ganz schnell auf eine Javascript Technik namens nereidFade. Und als nächstes auf den Hinweis: "Grundsätzlich ist dieser Effekt nur mit dem Internet Explorer möglich."

Ich hab' mir das Script mal vorgeknöpft, und für alle modernen Browser umgeschrieben. Und gleich noch mit einem horizontalen Autoscroll verbunden.
Zu sehen auf meiner aktuellen Spielwiese.

Achtung! DSL sollte schon sein. Die Seite ist wegen der eingebundenen Bilder 350 kB schwer.
Ladeanzeige Animation Für die Nutzer langsamerer Internetanbindungen gibt es als Entschädigung ein kleines gimmick: Eine flash-like Ladeanzeige.

Wer sich für die Technik interessiert:
Das Ganze spielt sich in einem iframe ab: http://www.the-magics.de/fade_scroll.html. Der Quellcode ist ausreichend dokumentiert.

Geeignet ist diese Technik zur Präsentation einiger weniger Bilder, aber ganz bestimmt nicht als Fotoalbum.


Menü unten?

Mittwoch, 27. Februar 2008

Das Menü gehört mit zu den wichtigsten Komponenten einer Website. Kein Zweifel. Und deshalb befindet es sich auch immer oben, links oder rechts, auf jeden Fall aber »above the fold«, ist also ohne Scrollen sichtbar.
Nutzer von Screen Readern, PDAs und Handys, sowie Suchmaschinen sind diesbezüglich ganz anderer Meinung. Sie hätten gerne das Wichtigste, nämlich den Inhalt, zuerst.
Die Lösung, um Alle zu bedienen: Das Menü kommt im markup, im Quelltext, ans Ende, und wird per CSS in die linke oder rechte Navigationsspalte positioniert. Damit die oben erwähnten Nutzergruppen das Menü leicht erreichen, gibt es einen skip link ganz am Anfang der Seite, um das Menü direkt anzuspringen. Zu erreichen (zu sehen) ist dieser skip link mit der Tab-Taste.
Ich hab' jetzt mal etwas anderes probiert: Auf dieser Seite bleibt die Navigation unten. Aus Designgründen.
Schön. Und gewagt. Wenn das Browserfenster des Besuchers, warum auch immer, so klein ist, dass er das Menü nur durch Scrollen erreicht? Ist das nicht irritierend?
Nein!
Denn in diesem Fall wird das Menü eben oben angezeigt.
Ich erreiche dies durch ein pfiffiges Javascript. Danke an SELFHTML
(Sollte Javascript nicht verfügbar sein, bleibt das Menü eben unten. Aber die Seite funktioniert weiterhin.)

Nachtrag: Hab' ich eigentlich erwähnt, daß der IE das natürlich nicht kann?


Komfortable Formulare

Montag, 25. Februar 2008

Mehrzeilige Texteingabefelder in Formularen <textarea> sind auf den meisten Webseiten aus Designgründen viel zu klein. Häufig passen nur 5 oder 6 Zeilen in das Eingabefeld, dann erscheint ein Scrollbalken. Damit wird es äußerst unbequem, das Geschriebene zur Korrektur noch einmal zu lesen.
Safari-Nutzer können das Textfeld mit der Maus vergrößern, und Firefox-Nutzern steht eine gleichwertige Extension zur Verfügung, wie ich hier beschrieben habe.
Eine weitere, elegante Lösung habe ich kürzlich gefunden (ich weiß leider nicht mehr wo, dennoch danke an Unbekannt).
Mittels eines Javascript eventhandlers wird das Textfeld automatisch nach unten verlängert, sobald bei der Texteingabe die letzte sichtbare Zeile erreicht ist:

<textarea onkeyup="this.style.height=Math.max(this.scrollHeight,150) + 'px';this.style.overflow='hidden'" …

Mit den 150 px Höhe muß man eventuell ein wenig experimentieren, um ein Springen der angezeigten Höhe zu vermeiden.
Diese Javascript-Lösung ist selbstverständlich unobtrusive, d. h. wenn Javascript nicht zur Verfügung steht, verhält sich das Texteingabefeld ganz normal, wie oben beschrieben.
Klar, dass ich das gleich hier mal probieren musste.


Sanftes Scrollen - wieder aktiviert

Mittwoch, 6. Februar 2008

Edit 06.02.2008: Ein neuer Anlauf. Das Bildschirmflackern sollte behoben sein (siehe Kommentar). Und auch der Zurück-button funktioniert.
Über Rückmeldungen und Kommentare würde ich mich freuen.

Edit 3.2.2006: wegen eventueller Probleme mit der accessibilty (Flackern) und der usability (die Zurück - Funktionalität des Browsers geht nicht mehr) hab ich das sanfte Scrollen - schweren Herzens - vorläufig? wieder deaktiviert.
Den Beitrag hier lasse ich stehen: das tool ist einfach zu interessant.
weiterlesen…


Archiv:

Kategorien:

Creative Commons Lizenzvertrag
Alle Texte (nicht Bilder!) Creative Commons CC BY-NC-SA 3.0 DE