回调中的动画没有触发,SnapSVG
Animation in callback not firing, SnapSVG
我正在尝试创建一个永远重复的反弹动画。我遇到的问题是,snap似乎没有执行我在回调中放入的动画。github上似乎有一些问题描述了Snap回到0.1.1时的这个问题,但他们已经关闭了。还有人见过这样的东西吗?
当前代码,它将运行动画的第一部分,然后停止:
var slight_bounce = function(body_part, transform1, transform2){
body_part.stop().animate({
transform: transform1
}, 1000,
function() {
body_part.animate({
transform: transform2
});
slight_bounce(body_part, transform1, transform2); // Repeat this animation so it appears infinite.
}
);
}
slight_bounce(hat, bounce, bounce_back);
你的代码中有一些错误…
首先,在您的参数中,您错过了缓和方法(如mina.bounce),因此需要包含它。
第二个内部函数没有回调作为动画参数的一部分,所以也不会在正确的时间被调用,所以所有这些都有点错误。
jsfiddle
var s = Snap(400, 620);
var slight_bounce = function(body_part, transform1, transform2 ){
body_part.stop().animate({
transform: transform1
}, 1000, mina.bounce,
function() {
body_part.animate({
transform: transform2
},1000,mina.bounce,
function() {
slight_bounce(body_part, transform1, transform2);
})
}
);
};
var hat = s.rect(100,100,100,100);
var bounce = 't0,100';
var bounce_back = 't0,0';
slight_bounce(hat, bounce, bounce_back);
由于这是一个相当常见的问题,我将稍微重写一下,因为我发现这样写回调函数方法有点笨拙。
这是完全相同的,但我发现它更有条理。
jsfiddle
function startBounce( body_part, transform1, transform2 ) {
body_part.stop().animate({
transform: transform1
}, 1000, mina.bounce, endBounce.bind(null, body_part, transform1, transform2));
}
function endBounce( body_part, transform1, transform2 ) {
body_part.animate({
transform: transform2
}, 1000, mina.bounce, startBounce.bind(null, body_part, transform1, transform2));
}
var hat = s.rect(100,100,100,100);
var bounce = 't0,100';
var bounce_back = 't0,0';
startBounce(hat, bounce, bounce_back);
相关文章:
- 如何设置html元素填充的动画
- 如何使用动画实现纸张推车
- 如何在生成下载文件时显示加载动画
- 剑道网格jQuery动画()问题
- EaseJS拖放;放下(动画CC)电影剪辑的鼠标坐标
- jQuery Lazy加载动画滚动
- jquery动画可以通过编程链接吗
- Javascript将数学动画化
- 动画.CSS重播
- 制作一个不带HTML a标记但在动画播放完毕后指向其他页面的超链接
- 如何使用jQuery在动画中期加速动画
- 使用数据上的角度更改设置集合的第一个元素的动画
- 如何使用css动画/javascript使具有背景图像的元素出现
- 如何使用css动画从中心增加边界线
- JQuery动画延长容器不起作用
- 动画CSS进度条
- JavaScript动画从不执行
- SnapSVG动画回调的一组元素不触发
- 回调中的动画没有触发,SnapSVG
- Snapsvg为渐变移动设置动画