Hi I have a tough time using the goToAndPlay
object for Lottie. My console keeps telling me that “it’s not a function”. I’m using the latest Lottie-interact and Lottie-player libraries. Does anyone else get this issue? Thanks in advance.
Mike
Hi I have a tough time using the goToAndPlay
object for Lottie. My console keeps telling me that “it’s not a function”. I’m using the latest Lottie-interact and Lottie-player libraries. Does anyone else get this issue? Thanks in advance.
Mike
I’d really just like a Lottie to play on click and stop at its ending frame- plus be chained by animation markers exported from After Effects…
Hey, Mike, this might help you but not sure. Here is a link to my sample page for applying job. You can go through the code.
Hi, Vijay. Your work looks really nice but I do require the goToAndPlay
function for my project and I can’t see that in the code you sent. I appreciate your effort
Yes, I didn’t used, I used easy way. could you share your JavaScript code?
Yes, I found a work around solution by extracting code from the linked Codepen. It doesn’t use the Lottie-player
element like you are but it plays in the behavior I need.
[Codepen](https://codepen.io/mikes1025/pen/RwEzbQP?editors=1111)
Now I just have to find a way for other animation markers to play within the Lottie respective to button
clicks. It seems to me that the Lottie starts on the DOMLoaded
event so I tried creating a CustomEvent
that activates by a button click to replace the function argument: "DOMLoaded"
.
I succeeded in creating the event but I did not succeed in getting a Lottie play by its activation
Okay, have you tried DOMContentLoaded
instead DOMLoaded
?
Hi, @mikes1025 hope this solution helps:
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
body {
background-color: aliceblue;
display: flex;
justify-content: center;
align-items: center;
}
.container {
height: 100vh;
}
</style>
</head>
<body>
<div id="container"></div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bodymovin/5.12.2/lottie.min.js"
integrity="sha512-jEnuDt6jfecCjthQAJ+ed0MTVA++5ZKmlUcmDGBv2vUI/REn6FuIdixLNnQT+vKusE2hhTk2is3cFvv5wA+Sgg=="
crossorigin="anonymous" referrerpolicy="no-referrer"></script>
<script>
var container = document.getElementById('container');
var jsonPath = 'https://assets2.lottiefiles.com/private_files/lf30_k9zqevoo.json';
var animation = lottie.loadAnimation({
container: container,
renderer: 'svg',
loop: true,
autoplay: true,
path: jsonPath,
});
animation.addEventListener("DOMLoaded", () => {
animation.goToAndPlay('bird', true);
});
function playOnClick(anim, frames) {
switch (frames) {
case 'bird':
anim.goToAndPlay(frames, true);
break;
case 'explosion':
anim.goToAndPlay(frames, true);
break;
case 'feather':
anim.goToAndPlay(frames, true);
break;
default:
break;
}
}
container.addEventListener('click', () => {
playOnClick(animation, 'feather');
animation.addEventListener('loopComplete', () => {
playOnClick(animation, 'bird');
});
});
</script>
</body>
</html>
@vijaypwr61 thank you! This is interesting and short. I am set on an issue that was months long and happy!
No problem at all, pleasure to help LottieFiles community. This might help someone.