如何在onClick事件中滑动元素,然后在单击另一个元素时将该元素滑回原始位置

时间:2013-05-16 22:23:02

标签: jquery jquery-animate

我使用jQuery animate()来处理效果。我遇到的问题是div无论是暂停还是元素继续向左滑动都会打开和关闭。

我尝试了什么:

var inView;
$('.contentBox').click(function(e){
 inView = false;
 var tmp_div = $(this).parent().index();
 if(inView == false){
    $('.details div').eq(tmp_div).show().animate({"left": "+=4000"}, "slow");
    inView = true;

 }
 if(inView == true){
     $('.details div').eq(tmp_div).show().animate({"left": "-=4000"}, "slow");
             inView = false;
 }
});

1 个答案:

答案 0 :(得分:1)

您的代码需要一个if else cuz,目前它将触发两组动画。此外,由于var在click函数中设置,因此它将始终为false。您希望它运行两个元素单击,因此您最有可能需要两个单击事件。所以这样的事情可能对你有用,虽然很难用所提供的有限描述来理解。

var inView = false;
$('#element1').click(function(e){
     var tmp_div = $(this).parent().index();
     if(inView == false){
        $('.details div').eq(tmp_div).show().animate({"left": "+=4000"}, "slow");
        inView = true;

     }
});
$('#element2').click(function(e){
     var tmp_div = $(this).parent().index();
     if(inView == true){
         $('.details div').eq(tmp_div).show().animate({"left": "-=4000"}, "slow");
         inView = false;
     }
});