如何减少和改进我丑陋的JavaScript代码?
我试图使用如何减少和改进我丑陋的JavaScript代码?,javascript,jquery,scope,Javascript,Jquery,Scope,我试图使用$(this).next()将控制权交给最近的兄弟姐妹。但在这个范围内,下一个兄弟姐妹还没有看到。如果我使用.each()函数,该操作将应用于数组中的所有元素,但它们同时执行。我想看到每一个动画播放后,另一个动画已经完成。我想使用.on()和.trigger()函数,但我不知道如何实现它们 $('h1.main-logo-text').show().letterfx({ "fx":"grow", "element_end":"destroy", "backwar
$(this).next()
将控制权交给最近的兄弟姐妹。但在这个范围内,下一个兄弟姐妹还没有看到。如果我使用.each()
函数,该操作将应用于数组中的所有元素,但它们同时执行。我想看到每一个动画播放后,另一个动画已经完成。我想使用.on()
和.trigger()
函数,但我不知道如何实现它们
$('h1.main-logo-text').show().letterfx({
"fx":"grow",
"element_end":"destroy",
"backwards":false,
"timing":100,
"fx_duration":"1000ms",
onElementComplete: function(){
$('#logoText1').show().letterfx({
"fx":"grow",
"element_end":"destroy",
"backwards":false,
"timing":100,
"fx_duration":"1000ms",
onElementComplete: function(){
$('#logoText2').show().letterfx({
"fx":"grow",
"element_end":"destroy",
"backwards":false,
"timing":100,
"fx_duration":"1000ms",
onElementComplete: function(){
$('#logoText3').show().letterfx({
"fx":"grow",
"backwards":false,
"timing":100,
"fx_duration":"1000ms",
});
}
});
}
});
}
});
您可以定义单个函数来调用每个元素;使用,在上一个动画完成时执行下一个动画
var elems = ["h1.main-logo-text", "#logoText1", "#logoText2", "#logoText3"];
function fx() {
return this.show().letterfx({
"fx":"grow",
"element_end":"destroy",
"backwards":false,
"timing":100,
"fx_duration":"1000ms"
}).promise("fx")
}
$({}).queue("_fx", $.map(elems, function(el) {
return function(next) {
fx.call($(el)).then(next)
}
})).dequeue("_fx").promise("_fx")
.then(function() {
console.log("complete")
})
您可以定义单个函数来调用每个元素;使用,在上一个动画完成时执行下一个动画
var elems = ["h1.main-logo-text", "#logoText1", "#logoText2", "#logoText3"];
function fx() {
return this.show().letterfx({
"fx":"grow",
"element_end":"destroy",
"backwards":false,
"timing":100,
"fx_duration":"1000ms"
}).promise("fx")
}
$({}).queue("_fx", $.map(elems, function(el) {
return function(next) {
fx.call($(el)).then(next)
}
})).dequeue("_fx").promise("_fx")
.then(function() {
console.log("complete")
})