0

因此,我正在开发一个非常小的、微不足道的网站。my website .

我的动画代码是:(编辑以反映变化

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 的小数)乘以“结束位置”,如果动画的目标位置为“0”,则此设置我的表单的位置立即变为“隐藏”位置,并且事情从那里开始。

我需要做的是将指针乘以表单可以达到的最大高度,以便在下降时它可以逐渐将越来越小的值返回给“currentPosition”变量。

4

1 回答 1

0

你永远不会清除setInterval动画之间的间隙。简单地打字clearInterval;没有任何作用。您需要存储从 返回的 ID,setInterval()然后将其传递给对 的调用clearInterval();

因为您没有清除,那些原始间隔仍在运行并且仍在尝试对相同的变量进行操作。

于 2013-07-20T20:34:58.573 回答