在此演示http://jsfiddle.net/vHcXN中,您可以看到,如果您点击链接,则转换开始。首先div高度改变然后滑动效果。
如何同时制作两种作品?
$(".turn_next").click(function(){
$(".box2").hide();
$(".box1_content").animate({height:'300px'}, 300,function(){
$(".box3").show('slide', {direction: 'right'}, 500);
});
});
$(".turn_back").click(function(){
$(".box3").hide();
$(".box1_content").animate({height:'100px'}, 300,function(){
$(".box2").show('slide', {direction: 'left'}, 500);
});
});
答案 0 :(得分:5)
从第一个动画的回调中删除第二个动画,
$(".turn_next").click(function(){
$(".box2").hide();
$(".box1_content").animate({height:'300px'}, 300);
$(".box3").show('slide', {direction: 'right'}, 500);
});
$(".turn_back").click(function(){
$(".box3").hide();
$(".box1_content").animate({height:'100px'}, 300);
$(".box2").show('slide', {direction: 'left'}, 500);
});
您在call back function
中指定的动画效果仅在初始动画完成后才会被触发。这就是你看到这种效果的原因。
答案 1 :(得分:0)
由于您将函数作为参数传递给动画,因此它将在动画结束后用作回调函数。只需连续打电话给他们:
$(".turn_next").click(function(){
$(".box2").hide();
$(".box1_content").animate({height:'300px'}, 300);
$(".box3").show('slide', {direction: 'right'}, 500);
});
$(".turn_back").click(function(){
$(".box3").hide();
$(".box1_content").animate({height:'100px'}, 300);
$(".box2").show('slide', {direction: 'left'}, 500);
});
请注意,它们不会完全同步,因为您将不同的长度传递给动画。
答案 2 :(得分:0)
目前,您已将.show('slide'...
函数作为.animate({'left'...
函数完成时的完整回调触发。删除回调并在第一个动画下面应用第二个动画:
$(".turn_next").click(function(){
$(".box2").hide();
$(".box1_content").animate({height:'300px'}, 300);
$(".box3").show('slide', {direction: 'right'}, 500);
});
$(".turn_back").click(function(){
$(".box3").hide();
$(".box1_content").animate({height:'100px'}, 300);
$(".box2").show('slide', {direction: 'left'}, 500);
});
Here是您编辑的小提琴,一起显示新动画。请注意,由于时间长度不同,两个动画不会对齐。