1

当我单击一个标签时,它会显示并为相应的 div 设置动画。现在我想要,如果我再次点击同一个标签,如果它各自的 div 离开 20,那么它应该离开 -30。小提琴

jQuery

$('li').click(function(e){
   var li= $(this).index()
var off= $(this).offset().top;
    $('div').each(function(){
        $(this).animate({left:'-30px',top:off},500, function(){
         $('div').eq(li).animate({left:'20px',top:off},500)
        })
    })    


})
4

1 回答 1

1

如果我理解你是正确的,你只是不想在你将 div -30px 向左移动后使用你正在做的动画?

$('li').click(function(e){
    var li = $(this);
    var index = li.index()
    var topOffset = li.offset().top;
    var isOpen = li.toggleClass('open').hasClass('open');
    li.siblings().removeClass('open');
    $('div').each(function(){
        $(this).animate({ left: '-30px', top: topOffset }, 500, function(){
            if(isOpen) {
                $('div').eq(index).animate({ left: '20px', top: topOffset}, 500);
            }
        });
    });
});

演示:http: //jsfiddle.net/ckDHz/3/

于 2013-10-22T05:14:28.737 回答