jQuery中的.animate()回调可以有一个step函数和一个普通函数吗?
我试图使用一个step:函数使我的“tab”div和“options”div同时滑出(即同步两个div的动画),但我还需要一个用于动画的常规函数 是否可以将这两种类型的函数作为.animate()的回调函数 编辑: 在上面的测试页面上,我想点击左上角的“文本选项卡”制作另一个div幻灯片,但是根据jQuery.animate()文档,step:函数用于同步不同元素的动画,我这里是我的JS:jQuery中的.animate()回调可以有一个step函数和一个普通函数吗?,jquery,function,callback,jquery-animate,Jquery,Function,Callback,Jquery Animate,我试图使用一个step:函数使我的“tab”div和“options”div同时滑出(即同步两个div的动画),但我还需要一个用于动画的常规函数 是否可以将这两种类型的函数作为.animate()的回调函数 编辑: 在上面的测试页面上,我想点击左上角的“文本选项卡”制作另一个div幻灯片,但是根据jQuery.animate()文档,step:函数用于同步不同元素的动画,我这里是我的JS: $( "#optsdiv" ).hide(); $( "#closediv" ).hide(); $(
$( "#optsdiv" ).hide();
$( "#closediv" ).hide();
$( "#opendiv" ).click( function() {
$( "#opendiv" ).animate( { left: "+=100px", opacity: 1 }, 1400, "easeOutExpo", function() {
$( "#opendiv" ).hide();
$( "#opendiv" ).animate( { left: "-=100px", opacity: 0.6 }, 0 );
$( "#closediv" ).show();
});
});
$( "#closediv" ).click( function() {
$( "#closediv" ).animate( { left: "-=100px", opacity: 0.6 }, 1400, "easeOutExpo", function() {
$( "#opendiv" ).show();
$( "#closediv" ).hide();
$( "#closediv" ).animate( { left: "+=100px", opacity: 1 }, 0 );
});
});
正如你所看到的,我使用一个“正常”函数(非步骤:函数)来完成动画。。。因此,我想知道在同一个回调函数中实现step:function时是否仍然可以使用当前使用的函数,以便同步从选项卡和另一个div中滑出的内容。如果“常规函数”是指动画末尾的回调,那么是的,只需使用第二个选项参数设置动画的所有属性:
$('.someElement').animate({width:100}, { duration:1000,
step: function(){},
complete: function(){} });
示例:但是我可以同时拥有一个步骤:函数和一个“常规”回调函数吗?@Aaron:要么我不知道你所说的“常规”函数是什么意思,要么我不知道你所说的“同时”是什么意思。你是说你想让
步骤:
函数调用另一个函数吗?@Aaron:听起来你只是说你需要一个函数作为步骤回调运行,在动画完成后运行另一个函数。但这就是我的答案,所以我显然还是不理解你。请用一些代码更新您的问题(即使是一个简单的示例来说明您想要什么),或者像我在回答中所做的那样创建一个JSFIDLE。@Aaron:对于您当前的HTML,您似乎不需要步骤回调来协调两者。只需在#optsdiv
上执行一个单独的(并行)动画,该动画同时启动,并与#opendiv
动画具有相同的持续时间。更好的办法是,更改HTML和CSS,以便将它们都放在一个容器中。然后你就可以给容器设置动画,两者都会随之移动。@Aaron:不止你一个人!很高兴我能帮忙o)