2013-05-16 1 views
1

Im, использующий jQuery animate() для обработки эффектов. Проблема, с которой сталкивается Im, заключается в том, что div также включает и выключает снова паузу или элемент продолжает скользить влево.Как согнуть элемент в событии onClick, а затем переместить этот элемент в исходное положение, когда щелкнул другой элемент.

Что я пробовал:

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; 
} 
}); 
+2

Можете ли вы подготовить [скрипку] (http://jsfiddle.net), пожалуйста ?! – yckart

ответ

1

Ваш код нуждается в if else Потому что в настоящее время он будет стрелять оба набора анимации. Кроме того, поскольку параметр 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; 
    } 
}); 
Смежные вопросы