我正在尝试使用bezier路径插件集成动画,我似乎无法正确实现它。
剥离,这就是我所拥有的:
$('#next2btn').live('click', function(){
$(this).attr('id','next3btn');
$('#content2').show(300, function() {
$('#account').fadeTo(500,1.0)
var arc_params = {
center: [278,120],
radius: 186,
start: -90,
end: 90,
dir: -1
};
});
$("#account").animate({path : new $.path.arc(arc_params)},1000);
});
所以,我正在尝试将这段代码添加到我所拥有的内容中:
var arc_params = {
center: [278,120],
radius: 186,
start: -90,
end: 90,
dir: -1
};
});
$("#account").animate({path : new $.path.arc(arc_params)},1000)
与其他人一样独立工作。
我认为这是关于声明变量以及我在哪里做的事情。
点击按钮,我实际上是在链接几个不同的动画/动作。
感谢您的任何见解 - KJ
答案 0 :(得分:1)
你的假设是正确的。当你在arc_params
的回调函数中声明show
时,它只在函数内部可见,而不在它之外,它在下面的代码中。在函数外部声明它,因此它将对您的动画函数可见。
以下是一个简单的示例,说明它是如何工作的,与任何其他代码无关:
var a = "outside function";
function someFunction() {
var b = "inside function";
}
alert(a); //alerts correctly
alert(b); //gives error: 'b is not defined' (as it is not visible from outside the function
答案 1 :(得分:0)
您发布的那段代码本身不起作用;它在语法上是不正确的(不匹配)
)。
你很可能会想要:
$('#next2btn').live('click', function(){
$(this).attr('id','next3btn');
$('#content2').show(300, function() {
$('#account').fadeTo(500,1.0);
var arc_params = {
center: [278,120],
radius: 186,
start: -90,
end: 90,
dir: -1
};
$("#account").animate({
path : new $.path.arc(arc_params)
}, 1000);
});
});
(当然,这与以下内容相同:)
$('#next2btn').live('click', function(){
$(this).attr('id','next3btn');
$('#content2').show(300, function() {
$('#account').fadeTo(500,1.0);
$("#account").animate({
path : new $.path.arc({
center: [278,120],
radius: 186,
start: -90,
end: 90,
dir: -1
})
}, 1000);
});
});