今天写了个程序,包含六个动画效果,每个效果都是用setInterval来实现的(还有个别的setTimeout),一个8个页面,每个页面有六个动画。
我的问题是:
当我从下个页面跳回上个页面时候,动画感觉明显加快了,就是说timeinterval的时间貌似变短了,这是为什么?
还有就是我跳回去的时候,动画的图片不会等所有的页面的元素显示完才移动(就是说每个页面都是要先把元素一个一个显示后,才开始动画效果),而是一开始就马上出现,是不是由于默认队列还有未执行完的元素,用stop(true,true)貌似也无效果,该如何处理跳回上个页面的问题?--ps:我有吧interval和settimeout的ID清除的。
或者说怎样写动画,才能让动画的中每个元素的时间间隔不发生变化,这个和浏览器相关么?

解决方案 »

  1.   

    是不是你的setInterval是在某个方法里,而每当页面跳转的时候就调用这个方法啊?
    设个变量接收这个setInterval,在调用setInterval前先clearInterval试试
      

  2.   

    我觉得setInterval没有setTimeout好,如果函数执行时间比较长的话可能这次的没跑完,下一次的又开始跑,容易造成混乱。
    用setTimeout递归实现setinterval的话就不会出现这个问题了。
     var fn = function()
    {
        /*代码*/
        setTimeout(fn, 3000);
    }
    setTimeout(fn, 3000);
      

  3.   

    var isRun=true;
    function run(){
        
       //调用你的冬冬
       xxxxxxx  if(isRun){
         setTimeout(run, 3000);
      }
    }
    //首次调用
    run();