我使用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;
}
});
答案 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;
}
});