在Firefox中的Jquery动画

时间:2010-04-30 06:43:39

标签: animation

我正在使用以下代码进行动画使用jquery。当我点击列表元素时,相应的div向下滑动,不透明度变为“1”。当我点击其他列表元素时,普遍的一个上升并消退,下一个下降。

var id_prev;
 var id_new;
$("#tag ul li ").click(function(event){
    var i = $(this).index()+1;
    var id_new="#person"+i;
    if(id_new != id_prev){
        $(id_prev).animate({top:'300px',opacity:'0'},500);
        $(id_prev).delay(200).css({'z-index':'0'});
        $(id_new).delay(200).css({'z-index':'300'});
        $(id_new).delay(200).animate({top:'300px',opacity:'0'},500);
        $(id_new).delay(200).animate({top:'330px',opacity:'1'},500);
        id_prev = id_new;
    }

});

1 个答案:

答案 0 :(得分:0)

这可能不会像你想要的那样发挥作用,因为如果他们点击最后一个呢?

但首先,你并没有说这些是什么:

var id_prev;
 var id_new;

你告诉他们是变量,但不是它们包含的变量。你需要在顶部这样的东西:

if ($(this).index() > 0) {    
   var id_prev = $(this).index()-1;
}

因此,如果div不是第一个,请将之前的ID设置为所选的ID,减去1 ...

但我真的建议你从只有两个开始,并完全编码 - 而不是使用递增值和变量 - 然后在可能的情况下采用该代码并将其压缩。