0

だから、私が取り組んでいる非常に小さくて取るに足らないサイトがあります。私のウェブサイト下部にある灰色がかったバーをクリックすると、一種の簡単なアニメーションが表示され、将来、さまざまな写真にまとめた情報や、そこに掲載したいと決めたものを編集するために使用できます.

アニメーションの私のコードは次のとおりです:(変更を反映するように編集されています)

function animateForm(startPosition,endPosition,firstKey,keyInterval) 
{
    if(currentKey != lastKey)
    {
        animationPointer =( .5 * Math.sin((currentKey * (Math.PI/totalKeys)) - (Math.PI/2))) + .5;
        currentPosition = (animationPointer)*endPosition;
        bottomForm.style.bottom = currentPosition + "px";
        currentKey=currentKey+(keyInterval*1);
    }
    else 
    {
        clearInterval(int);
        int=0;
    }
}

解決しました!問題は、「アニメーション ポインター」 (アニメーションの進行状況を示す 0 から 1 までの 10 進数) に「終了位置」を掛けていたことで、アニメーションが「0」の終了位置を目指していた場合、このセットは私のフォームの位置はすぐに「非表示」の位置になり、そこから物が飛び散りました。

私がする必要があったのは、ポインタにフォームが到達できる最大の高さを掛けて、その下降時に「currentPosition」変数に徐々に小さい値を返すことができるようにすることです。

4

1 に答える 1

0

setIntervalアニメーションの間をクリアすることはありません。単に入力するだけでは何も起こりclearInterval;ません。から返された ID を保存し、setInterval()それを の呼び出しに渡す必要がありますclearInterval();

クリアしていないため、これらの元の間隔はまだ実行されており、同じ変数を操作しようとしています。

于 2013-07-20T20:34:58.573 に答える