解决方案 »

  1.   


    function midFlash() {
    $('#flashCon').animate({ paddingLeft: "65px"}, {duration: 6500});
    $('#flashCon').animate({ paddingLeft: "65px"}, { duration: 3000});
    $('#flashCon').animate({ paddingLeft: "650px" }, {duration: 5500});
    $('#flashCon').animate({ paddingLeft: "650px"}, { duration: 8000});
    }
    $(function() {
    $.easing.def = "linear";
    setInterval(midFlash, 5000);
    });
      

  2.   

    或者这样function midFlash() {
    $('#flashCon').animate({ paddingLeft: "65px"}, {duration: 6500});
    $('#flashCon').animate({ paddingLeft: "65px"}, { duration: 3000});
    $('#flashCon').animate({ paddingLeft: "650px" }, {duration: 5500});
    $('#flashCon').animate({ paddingLeft: "650px"}, { duration: 8000});
    setTimeout(midFlash, 8100);
    }
    $(function() {
    $.easing.def = "linear";
    setTimeout(midFlash, 5000);
    });
      

  3.   


    这个是 ok 的  ,我想问下您 
    为什么把
    midFlash();
    改成
    setTimeout(midFlash, 8100); (PS:改为 setTimeout(midFlash, 0); 也行)
    就ok了?
      

  4.   

    function midFlash() {
        $('#flashCon').animate({ paddingLeft: "65px"}, {duration: 6500});
        $('#flashCon').animate({ paddingLeft: "65px"}, { duration: 3000});
        $('#flashCon').animate({ paddingLeft: "650px" }, {duration: 5500});
        $('#flashCon').animate({ paddingLeft: "650px"}, { duration: 8000});
        midFlash();
    }你这个已经死循环了。。不断的调用
      

  5.   


    这个是 ok 的  ,我想问下您 
    为什么把
    midFlash();
    改成
    setTimeout(midFlash, 8100); (PS:改为 setTimeout(midFlash, 0); 也行)
    就ok了?

    animate只是设置动画的数据。并不会让当前程序的线程暂停等待,所以你那是在一个线程中的死循环,循环太多会堆栈溢出的setTimeout(midFlash, 0); 虽然不会堆栈溢出,但不停的增加设置新动画的数据,会大量浪费内存。最好把setTimeout()的时间设置成动画时间的总合