我正在寻找改进我用 jQuery 编写的脚本来做一些将多个动画链接在一起的动画(在某种程度上是时间轴序列)。我不想手动链接每个单独的动画,而是想编写一个函数来替换每个动画中的一些标准元素。
诚然,我没有 JavaScript 知识来了解实现此目的的最佳实践;话虽如此,一些指针/例子会很棒。
这是我所拥有的:
function itemsFirstAnim() {
// Define each target div
var one = $(".one");
var two = $(".two");
var three = $(".three");
var four = $(".four");
var five = $(".five");
var six = $(".six");
var seven = $(".seven");
var eight = $(".eight");
var nine = $(".nine");
var ten = $(".ten");
var eleven = $(".eleven");
var twelve = $(".twelve");
// Show a block (opacity 1), give the overlay a position, show and animate it
twelve.css("opacity", 1).children(".overlay").show().animate({ right: "100%" }, 750, function() {
// cover the block with the overlay when the animation is done
twelve.children('.overlay').css({ right: 0 });
eleven.css("opacity", 1).children(".overlay").show().animate({ bottom: "100%" }, 750, function() {
eleven.children('.overlay').css({ bottom: 0 });
seven.css("opacity", 1).children(".overlay").show().animate({ right: "100%" }, 750, function() {
seven.children(".overlay").css({ right: 0 });
and so on....
});
});
});
}
理想情况下,我希望有参数target
并direction
替换初始选择器(即twelve
)和它的动画方向(即right: "100%"
)。由于每个target
anddirection
都是不同的,我不能只编写一个函数并在其内部调用它,除非我将它嵌套 12 次,这似乎充其量也是初级的。
最后,我希望这个函数(或者可能是一个插件?)在所有 12 个都被应用后停止执行。
不幸的是,动画的顺序不是连续的(如示例中所示。但是,我确实知道要制作动画的数字的顺序)。
这是我所拥有的一个例子:http: //codepen.io/anon/full/Dxzpj
如果有人有任何见解,将不胜感激。谢谢!