我正在使用以下代码进行动画使用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;
}
});
答案 0 :(得分:0)
这可能不会像你想要的那样发挥作用,因为如果他们点击最后一个呢?
但首先,你并没有说这些是什么:
var id_prev;
var id_new;
你告诉他们是变量,但不是它们包含的变量。你需要在顶部这样的东西:
if ($(this).index() > 0) {
var id_prev = $(this).index()-1;
}
因此,如果div不是第一个,请将之前的ID设置为所选的ID,减去1 ...
但我真的建议你从只有两个开始,并完全编码 - 而不是使用递增值和变量 - 然后在可能的情况下采用该代码并将其压缩。