pha*_*gie 10 javascript jquery animation bodymovin
让我的动画在悬停时触发播放.我把一切都搞定了,但是当我试图再次盘旋时,似乎没有任何效果.
我写错了什么想法?
var squares = document.getElementById("test");
var animation = bodymovin.loadAnimation({
container: test,
renderer: "svg",
loop: false,
autoplay: false,
path: "https://dl.dropboxusercontent.com/BodyMovin/squares.json"
});
squares.addEventListener("mouseenter", function () {
animation.play();
});
function playAnim(anim, loop) {
if(anim.isPaused) {
anim.loop = loop;
anim.goToAndPlay(0);
}
}
function pauseAnim(anim) {
if (!anim.isPaused) {
anim.loop = false;
}
}
Run Code Online (Sandbox Code Playgroud)
小智 7
当动画到达最后一帧时,它不会回到第一帧。这就是为什么如果你调用 play,什么也没有发生,因为它已经结束了,没有更多的可玩了。
你应该做:
squares.addEventListener("mouseenter", function () {
animation.goToAndPlay(0);
});
Run Code Online (Sandbox Code Playgroud)
如果您只希望它在到达最后一帧后重播,这应该可行:
var isComplete = true;
svgContainer.addEventListener('mouseenter', function(){
if(isComplete){
squares.goToAndPlay(0);
isComplete = false;
}
})
squares.addEventListener('complete', function(){
isComplete = true;
})
Run Code Online (Sandbox Code Playgroud)
我正在尝试这个,尽管我关于 Bodymovin (和 Lottie)的经验仅来自 React Native 世界。
当光标离开元素时,停止动画并重新启动动画应该非常简单:
squares.addEventListener("mouseenter", function () {
animation.play();
});
squares.addEventListener("mouseleave", function () {
animation.gotoAndStop(0);
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2087 次 |
| 最近记录: |