Entwicklung & Design

ifvisible.js: Startet Animationen nur im aktiven Browser-Fenster

Haben wir die Aufmerksamkeit des Benutzers? (Foto: ben.hollis / flickr.com, Lizenz: CC-BY)

In diesem Artikel erfahrt ihr, wie ihr herausfinden könnt, ob Browser-Fenster oder Browser-Tabs aktiv sind und wie ihr dadurch die Performance und User-Experience eures Webprojektes steigern könnt.


Ihr habt eine absolut abgefahrene Animation, einen Wahnsinns-Eyecatcher oder ihr bietet ein besonders „smoothes“ Erlebnis beim Laden eurer Website – und dann öffnet der User eure Seite im achten Tab seines Browsers und verpasst das ganze Spektakel. Schade, aber ein gängiges Problem: Der User kommt nicht in den Genuss eines Effektes, dieser wird aber trotzdem dargestellt und gerendert.

Wäre es nicht schön wenn wir eine einfache Möglichkeit hätten, zu überprüfen, ob ein Browserfenster beziehungsweise ein Browser-Tab aktiv ist? Dann könnten wir sicherstellen, dass unsere Animation oder jede andere Funktion, nur dann läuft, wenn wir auch die volle Aufmerksamkeit des Benutzers haben. Eben das macht jetzt ifvisible.js.

Mit dem ifvisible.js-Skript weißt du, ob ein Benutzer dein Projekt im Browser „ansieht“. (Foto: ben.hollis / flickr.com, Lizenz: CC-BY)

Funktionen ausführen, ifvisible.js

Das crossbrowser-Leichtgewicht von circa acht Kilobyte stellt sicher, dass Funktionen nur dann ausgeführt werden, wenn der Benutzer den Effekt auch sehen kann. Dabei kann das Skript verschiedene Zustände von Tabs oder Browser-Fenstern von einander unterscheiden – zum Beispiel ob ein Fenster minimiert ist, gerade der Browser-Tab gewechselt wurde und natürlich, ob die Seite gerade angezeigt wird oder nicht.

// If page is visible right now
if( ifvisible.now() ){
    // Display pop-up
    openPopUp();
}
ifvisible.on("blur", function(){
// example code here..
animations.pause();
});
ifvisible.on("focus", function(){
    // resume all animations
    animations.resume();
});

Darüber hinaus könnt ihr auch sich ständig aktualisierende Daten auf „Idle“ setzen und später den Daten-Stream wieder weiter laufen lassen.

ifvisible.on("idle", function(){
    // Stop auto updating the live data
    stream.pause();
});

ifvisible.on("wakeup", function(){
    // go back updating data
    stream.resume();
});

Fazit: ifvisible.js – Eine nützliche JavaScript-Lösung

Mir gefällt die Idee und die Umsetzung. In einem ersten Test lief das Skript problemlos und verrichtet eseinen Dienst wie versprochen. Ihr könnt euch ifvisible.js bei GitHub herunterladen und den gut dokumentieren Quellcode durchsehen.

Verwendet ihr häufig Animationen in euren Webprojekten?

Bitte beachte unsere Community-Richtlinien

Wir freuen uns über kontroverse Diskussionen, die gerne auch mal hitzig geführt werden dürfen. Beleidigende, grob anstößige, rassistische und strafrechtlich relevante Äußerungen und Beiträge tolerieren wir nicht. Bitte achte darauf, dass du keine Texte veröffentlichst, für die du keine ausdrückliche Erlaubnis des Urhebers hast. Ebenfalls nicht erlaubt ist der Missbrauch der Webangebote unter t3n.de als Werbeplattform. Die Nennung von Produktnamen, Herstellern, Dienstleistern und Websites ist nur dann zulässig, wenn damit nicht vorrangig der Zweck der Werbung verfolgt wird. Wir behalten uns vor, Beiträge, die diese Regeln verletzen, zu löschen und Accounts zeitweilig oder auf Dauer zu sperren.

Trotz all dieser notwendigen Regeln: Diskutiere kontrovers, sage anderen deine Meinung, trage mit weiterführenden Informationen zum Wissensaustausch bei, aber bleibe dabei fair und respektiere die Meinung anderer. Wir wünschen Dir viel Spaß mit den Webangeboten von t3n und freuen uns auf spannende Beiträge.

Dein t3n-Team

Ein Kommentar

Melde dich mit deinem t3n Account an oder fülle die unteren Felder aus.