requestAnimationFrame
Generell ist die Methode requestAnimationFrame()
mit setTimeout() und setIntervall() zu vergleichen. Als Unterschied wird keine Zeitverzögerung angegeben. Das Intervall wird vom Browser und der Leistungsfähigkeit des Rechners bestimmt.
Quelle (selfhtml): Der Browser sorgt dafür, dass die Funktion nicht öfter aufgerufen wird, als der Bildschirm das Bild neu zeichnen kann (üblicherweise 60 bis 75 Bilder pro Sekunde). Auf inaktiven, also nicht im sichtbaren Bereich befindlichen Elementen, wird maximal ein AnimationFrame pro Sekunde ausgelöst, um nicht unnötig Rechenkraft zu verschwenden.
Dass ich hier gleich die Wirkungsweise der CSS-Eigenschaft columns nutze, ist offentsichtlich. Weils Spaß macht!
Aber das ist nicht Gegenstand meiner Beobachtungen. Mit requestAnimationFrame()
kommt also ebenfalls Bewegung auf die Seiten. Safari will allerdings nicht so recht mit mir spielen. Denn eben nich! (15.Dez.15)
Das JavaScript (entlehnt und angepasst):
01 02 03 04 05 06 07 08 09 10 11 |
var start = null; |
Mouseover to start
Das Beispiel befasst sich neben der Methode requestAnimationFrame()
auch mit den Event-Handlern onmouseover
und onmouseout
. Zunächst zu Ersterem: Da die Zeit ohne vorgegebenem Intervall gezählt wird, stellt sich die Anzeige synchron zum Rechner/Server um. D.h. dass man bei Mouseover feststellen kann, dass der erste Anzeigenintervall weniger als eine Sekunde betragen kann. Ok, damit wird ein weiteres Merkmal zur Unterscheidung deutlich!
Mit onmouseover
und onmouseout
beschäftige ich mich näher in JavaScript ► Grundlagen ►
Event-Handler
.
Anzeige-Elemente und Script:
71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 |
<section id="mousebg" ><p style="color: LightCyan;" id="mousespruch">Mouseover to start</p>
|
Die externe Script-Datei:
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
/* 2. Beispiel */ |
Safari für Windows fällt für diese Methode völlig aus. Da Safari für Windows nicht mehr weiter entwickelt wird, werden also auch keine weiteren Implementierungen vorgenommen. Mein Test auf Mac OSX 10.4.11 (auch schon sehr alt) ergab, dass neuere Versionen nicht unterstützt werden! - HALLO!!! - Ich soll also immer das neuste Betriebssystem kaufen, um Safari testen zu können. NA DAS FÄLLT AUS! Und ich war bis MAC OS 9.2.2 absoluter Fan vom MAC, weil das mal mein Arbeitspferd war.
Das muss auch mal gesagt werden!
Auch hier arbeite ich weiter, sowie mir ein Beispiel passend erscheint.