解决方案 »

  1.   

    看api,
    animate的回调不是这么用的。
    .animate({'top':'-=160px'}, 300, function(){
        // do
    })
      

  2.   


    那不是回调啊 我是想 top 的 值 引号后面的函数里判断  
      

  3.   


    那不是回调啊 我是想 top 的 值 引号后面的函数里判断  
    $(function(){
    setInterval(function(){
    var num=Math.random()>0.5?160:-160;
    var num2=Math.floor(Math.random()*3);
    var ThisTop=$('#box ul li div').eq(num2).position().top;
    $('#box ul li div').eq(num2).stop().animate({'top':ThisTop==0?'-=160px':ThisTop==-320?'+=160px':'+='+num}, 300)
    },1500)
    })
      

  4.   


    那不是回调啊 我是想 top 的 值 引号后面的函数里判断  
    $(function(){
    setInterval(function(){
    var num=Math.random()>0.5?160:-160;
    var num2=Math.floor(Math.random()*3);
    var ThisTop=$('#box ul li div').eq(num2).position().top;
    $('#box ul li div').eq(num2).stop().animate({'top':ThisTop==0?'-=160px':ThisTop==-320?'+=160px':'+='+num}, 300)
    },1500)
    })
    又学了一招.谢谢.
    不过还有个问题 ,那个后面为什么不能用函数来返回呢?
      

  5.   

    可以用函数来返回, 这样做:top: (function(){if(){return ...}})()之前无效是因为你给top赋值赋了一个函数对象, 而这个函数并未执行. 所以加上(function(){})()就可以将它执行, 获取返回值了
      

  6.   


    那不是回调啊 我是想 top 的 值 引号后面的函数里判断  
    $(function(){
    setInterval(function(){
    var num=Math.random()>0.5?160:-160;
    var num2=Math.floor(Math.random()*3);
    var ThisTop=$('#box ul li div').eq(num2).position().top;
    $('#box ul li div').eq(num2).stop().animate({'top':ThisTop==0?'-=160px':ThisTop==-320?'+=160px':'+='+num}, 300)
    },1500)
    })
    又学了一招.谢谢.
    不过还有个问题 ,那个后面为什么不能用函数来返回呢?
    .animate()并不支持这种语法
    attr()和css()到是支持
    .attr( attributeName, function(index, attr) )
    .css( propertyName, function(index, value) )