我想在自定义函数中传递参数来为特定部分设置动画。完全不确定我缺少什么?
我创建了一个 JsFiddle
function animate($class,$method,$value,$duration,$delay) {
var delay_time = 0;
$($class).each(function() {
$(this).delay(delay_time).animate({
$method : $value
}, {
duration: $duration
});
delay_time += $delay;
});
}
animate(".container","width", 100, 300, 250);
$method
是我试图传递的内容,但出于某种原因它不想工作?我错过了什么?
最佳答案
<强> Working Fiddle
您无法像在 {$method: $value}
中那样定义对象,但您可以在 animate 方法之外构造对象,然后只需传递它:
var my_object = {};
my_object[$method]=$value;
$(this).delay(delay_time).animate(my_object,{duration: $duration});
希望这有帮助。
<小时/>function animate($class,$method,$value,$duration,$delay) {
var delay_time = 0;
$($class).each(function() {
var my_object = {};
my_object[$method]=$value;
$(this).delay(delay_time).animate(my_object,{duration: $duration});
delay_time += $delay;
});
}
animate(".container","width", 100, 300, 250);
.container {
opacity: 1;
width: 0;
background: #0f0;
height: 100px;
}
p {
margin: 0;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="container">
<p>show me</p>
</div>
<div class="container">
<p>show me</p>
</div>
关于javascript - 将参数传递给 animate jquery 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35658370/