Jquery 单击时设置LI位置的动画

Jquery 单击时设置LI位置的动画,jquery,jquery-animate,position,html-lists,Jquery,Jquery Animate,Position,Html Lists,我肯定我错过了一些愚蠢的东西,但我看不见。 应该发生的是,在垂直列表中,当单击一个LI时,它将右移10px,如果单击另一个LI,它将向后移动,单击的LI将右移。 这在列表中运行良好,但如果我返回到上一个LI,则上一个选定的LI将按其应有的方式向后移动,但单击的LI没有动画,因此,当您来回单击LI时,LI将继续向后移动 $("#navig li").click(function(){ $("#navig li.selected").animate({ left: "-=10px"

我肯定我错过了一些愚蠢的东西,但我看不见。
应该发生的是,在垂直列表中,当单击一个LI时,它将右移10px,如果单击另一个LI,它将向后移动,单击的LI将右移。
这在列表中运行良好,但如果我返回到上一个LI,则上一个选定的LI将按其应有的方式向后移动,但单击的LI没有动画,因此,当您来回单击LI时,LI将继续向后移动

$("#navig li").click(function(){
$("#navig li.selected").animate({ 
        left: "-=10px",
      }, 300 );
    $("#navig li.selected").removeClass("selected")

    $(this).addClass("selected")
    $(this).animate({ 
        right: "-=10px",
      }, 300 );
})

你需要这样的东西吗


如果您调整
left
加号或减号,则对其他条件执行相反的操作,但对相同的位置属性
left

单击事件在哪里?、js code?$(“#navig li”)。单击(函数(){始终调整
left
属性,不要将
left
right
混合,应该是:“+=10”右:“-=10”连续的charlietfl你是对的,不管是左还是右,但是交换了-/+但不能接受它作为回答。我很好奇,把它作为css的一部分会更好吗?如果你不关心IE7/Ie8,它不支持转换,我会使用css方式谢谢。我玩了一点,但不喜欢等待的美学r的绿色背景上的李出现,我认为添加一个单独的类只是为了动画只是做更多的工作。
$("#navig li").click(function(){
    var $this  = $(this),
        el = $this.siblings().filter(".selected");

    el.animate({left: 0}, 300, function(){
        $(this).removeClass("selected");
    });

    $this.animate({left: 10}, 300, function(){
        $(this).addClass("selected");
    });

});