2

現時点で私が持っているものは次のとおりです。

function animateLetter(letter, type){
    letter.css(type, '50%');
    var j = 50;
    loop(function(){
    letter.css(type, (j =- 5) + '%'); 
    return j < 0;
    });
   }

   function loop(run) {
       if(run.apply()) requestAnimationFrame(loop(run));
   }

なぜこれがうまくいかないのでしょうか?私はJSが初めてなので、明らかな何かが欠けている可能性があります。

4

1 に答える 1

4

このloop関数は、 の呼び出しで自身を呼び出すため、無限ループを引き起こしますrequestAnimationFrame

function loop(run) {
   if(run.apply()) requestAnimationFrame(function() { loop(run) });
}

loop の呼び出しを別の関数でラップすると、コールバックが呼び出されたときにのみrequestAnimationFrame呼び出されます。

于 2013-02-19T09:07:18.130 に答える