Fehler beim ausführen der 'requestAnimationFrame' auf 'Fenster': Der callback bereitgestellt, die als parameter 1 ist keine Funktion.
Nicht sicher, was ich falsch mache hier...
window.requestAnimFrame = function(){
return (
window.requestAnimationFrame ||
window.webkitRequestAnimationFrame ||
window.mozRequestAnimationFrame ||
window.oRequestAnimationFrame ||
window.msRequestAnimationFrame ||
function(/* function */ callback){
window.setTimeout(callback, 1000 / 60);
}
);
}();
function animationSequence(elem, ind) {
this.ind = ind;
this.elem = elem;
this.distance = 450;
this.duration = 900;
this.increment = 0;
this.start = Math.abs(this.ind)*450;
var requestId = requestAnimFrame(this.animate);
this.move();
this.move = function() {
this.elem.style.left = this.start - this.increment + "px";
}
this.animate = function() {
var self = this;
this.move();
this.increment += 5;
if (this.increment >= 450) {
if (this.ind == 0) { console.log("true"); this.elem.style.left = "1350px" }
cancelAnimFrame(requestId);
}
}
//this.animate();
}
- Haben Sie versuchen, um Platz
var requestId = requestAnimFrame(this.animate);
unterhalb derthis.animate
definition einer Funktion?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ok, so helfen Sie mir, wenn ich Euch falsch ist Ihr problem, dass Sie verloren haben, Ihre Referenz zu
this
innerhalb der animate-Methode? d.h. man kann keine call -this.move()
oder Inkrement das Inkrement?Wenn ja, versuchen, diese-
Sehen, diese Antwort über die Bindung mit requestAnimation Rückrufe hier.
Und diese blog-post-Bindung.
Update Mai 2019
Wenn Sie verwenden können, ES6, die Sie einsetzen können ein-Pfeil-Funktion, die Sie pflegen, Umfang wie diese:
Lesen Sie über die Pfeil-Funktionen hier:
Blog post über die Pfeil-Funktionen und das Schlüsselwort this