Warning: file(../php/meta/meta_03_42.txt): failed to open stream: No such file or directory in /www/htdocs/w01265b6/andisein.de/02_webdesign/html/main/main.php on line 21

Warning: strftime() expects parameter 2 to be long, string given in /www/htdocs/w01265b6/andisein.de/02_webdesign/html/php/metadatum.php on line 4

Warning: date() expects parameter 2 to be long, string given in /www/htdocs/w01265b6/andisein.de/02_webdesign/html/php/metadatum.php on line 5
2 3 10 42 0 0 0

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.

hallo Safari

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;
var balken = document.getElementById("anim");
function BALKEN(timestamp) {
  if (!start) start = timestamp;
  var x = Math.round((timestamp - start))/10;
  if ( x < 380 ) {
   balken.style.width = x + "px";
   balken.innerHTML = x + " px";
   requestAnimationFrame(BALKEN);
  }
}

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>
<time id="time"></time>
<section id="mouseeffekt" ></section>
</section>
<script>
var cl_elem = document.getElementById("mouseeffekt");
var spruch = document.getElementById("mousespruch");
cl_elem.onmouseover = function (event) {
  spruch.innerHTML = "Mouseout to end" ;
  UHR() ;
}
cl_elem.onmouseout = function (event) {
  spruch.innerHTML = "Mouseover to start" ;
  UHROUT() ;
}
</script>

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 */
var requestID = undefined;
var obj_uhr, digitUhr ;
function UHR() {
 obj_uhr = document.getElementById("time") ;
 var date = new Date() ;
 var Std = ( date.getHours() < 10 ) ? "0"+date.getHours() : date.getHours() ;
 var Min = ( date.getMinutes() < 10 ) ? "0"+date.getMinutes() : date.getMinutes() ;
 var Sek = ( date.getSeconds() < 10 ) ? "0"+date.getSeconds() : date.getSeconds() ;
 digitUhr = "<span class='lcd'>"+Std+"<span class='dpplpt'>:</span>"; 
 digitUhr += Min+"<span class='dpplpt'>:</span>"+Sek+"</span>" ;
 obj_uhr.innerHTML = digitUhr ;
 requestID = requestAnimationFrame(UHR);
}
function UHROUT() {
 cancelAnimationFrame(requestID);
 obj_uhr = document.getElementById("time") ;
 obj_uhr.innerHTML = "" ;
}

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.




Warning: strftime() expects parameter 2 to be long, string given in /www/htdocs/w01265b6/andisein.de/02_webdesign/html/main/main.php on line 197

Dokument geändert am: