Listening on Events
Use a callback for onEvent to intercept events. Use the second parameter of the callback function for event params.
pageEventsimport { DotLottiePlayer, Controls, PlayerEvents } from "@dotlottie/react-player";
import "@dotlottie/react-player/dist/index.css";
import { useState } from "react";
const App = () => {
const [frame, setFrame] = useState(0);
const [seeker, setSeeker] = useState("0%");
return (
<div>
<DotLottiePlayer
style={{ height: "500px" }}
onEvent={(event, params) => {
// Intercept any event from PlayerEvents in here
// Listen for player ready
if (event === PlayerEvents.Ready) {
console.log("player ready!");
}
// Listening for frame change
if (event === PlayerEvents.Frame) {
const { frame, seeker } = params as Record<string, number>;
setFrame(frame);
setSeeker(`${seeker.toFixed(2)}%`);
}
}}
src="https://lottie.host/ffebcde0-ed6d-451a-b86a-35f693f249d7/7BMTlaBW7h.lottie"
autoplay
loop
>
<Controls />
</DotLottiePlayer>
{/* Frame and Seeker display */}
<div>
<label>
Frame: <input value={frame} disabled />
</label>
<label>
Seeker: <input value={seeker} disabled />
</label>
</div>
</div>
);
};
export default App;
Last updated