npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@thorvg/lottie-player

v1.0.0-beta.15

Published

A web lottie player using ThorVG as a renderer

Downloads

270

Readme

@thorvg/lottie-player

A Lottie Player which uses ThorVG as a renderer, provides a web component for easily embedding and playing Lottie animations.

Installation

  • Import from CDN
<script src="https://unpkg.com/@thorvg/lottie-player@latest/dist/lottie-player.js"></script>
  • Install from NPM
npm install @thorvg/lottie-player

Usage

With HTML (Basic Usage)

Once you import from CDN, you can access <lottie-player/>

<lottie-player 
  autoPlay 
  loop
  mode="normal"
  src="https://lottie.host/6d7dd6e2-ab92-4e98-826a-2f8430768886/NGnHQ6brWA.json"
  style="width: 500px; height: 500px;"
>
</lottie-player>

With NPM (JS/TS)

Import the library and please follow Basic Usage, you can use library on any NPM-based project such as React, Vue and Svelte.

import '@thorvg/lottie-player';

With ReactJS + TypeScript

Add declarations.d.ts on the root of project and make sure following declaration.

declare namespace JSX {
  interface IntrinsicElements {
    "lottie-player": any;
  }
}

Then you will be able to use this as same as above

import '@thorvg/lottie-player';

<lottie-player 
  autoPlay 
  loop
  mode="normal"
  src="https://lottie.host/6d7dd6e2-ab92-4e98-826a-2f8430768886/NGnHQ6brWA.json"
  style="width: 500px; height: 500px;"
>
</lottie-player>

With SSR Framework

We should be careful when using on SSR frameworks such as NextJS, NuxtJS and Svelte, as it means the library must to be rendered on browser/client side.

  • NextJS
import { useEffect } from "react";

export default function Home() {
  // ...

  useEffect(() => {
    import("@thorvg/lottie-player");
  });

  // ...
}
  • NuxtJS
<template>
  {/* ... */}
</template>

<script>
  export default {
    mounted() {
      import("@thorvg/lottie-player");
    }
  }
</script>
  • Svelte
<script>
  import { onMount } from 'svelte';

  onMount(async () => {
    await import('@thorvg/lottie-player');
  });
</script>

API

Properties

| Property | Description | Type | Default Value | Required | | --- | --- | --- | --- | --- | | src | A graphic resource to play. It could be an internal/external URL or JSON string for Lottie. | string | undefined | Y | | speed | Animation speed (for Lottie) | number | 1 | N | | autoplay | When set to true, automatically plays the animation on loading it (for Lottie) | boolean | false | N | | count | Number of times to loop the animation | number | undefined | N | | loop | When set to true, loops the animation. The count property defines the number of times to loop the animation. Setting the count property to 0 and setting the loop to true, loops the animation indefinitely. | boolean | false | N | | direction | Direction of the animation. Set to 1 to play the animation forward or set to -1 to play it backward. | number (1 or -1) | 1 | N | | mode | Play mode. Setting the mode to PlayMode.Bounce plays the animation in an indefinite cycle, forwards and then backwards. | PlayMode | PlayMode.Normal | N | | intermission | Duration (in milliseconds) to pause before playing each cycle in a looped animation. Set this parameter to 0 (no pause) or any positive number. | number | 1 | N |

Events

You can adapt the event with the following code example

const player = document.querySelector('lottie-player');

player.addEventListener('load', () => {
  // TODO: implements
});

| Name | Description | | --- | --- | | load | A graphic resource is loaded | | error | An animation data can’t be parsed. | | ready | Animation data is loaded and player is ready | | play | Animation starts playing | | pause | Animation is paused | | stop | Animation is stopped | | freeze | Animation is paused due to player being invisible | | loop | An animation loop is completed | | complete | Animation is complete (all loops completed) | | frame | A new frame is entered |

Methods

Method : load(src: string | object)

Purpose : Load and play Lottie animation

Parameters | Name | Type | Description | --- | --- | --- | | src | string or object | URL, or a JSON string or object representing a Lottie animation to play.

Return Type : Promise<void>


Method : play()

Purpose : Play loaded animation

Return Type : void


Method : pause()

Purpose : Pause playing animation

Return Type : void


Method : stop()

Purpose : Stop current animation

Return Type : void


Method : seek(frame: number)

Purpose : Move to a given frame

Parameters | Name | Type | Description | --- | --- | --- | | src | number | The frame number to move, shouldn't be less than 0 and greater than totalFrame

Return Type : void

[!TIP] You can easily check total frame of animation, use player.totalFrame


Method : destory()

Purpose : Destroy animation and lottie-player element

Return Type : void


Method : setLooping(value: boolean)

Purpose : Enable animation loop

Parameters | Name | Type | Description | --- | --- | --- | | value | boolean | true enables looping, while false disables looping.

Return Type : void


Method : setDirection(value: number)

Purpose : Set animation direction

Parameters | Name | Type | Description | --- | --- | --- | | value | number | Direction values. 1 to play the animation forward, -1 to play it backward.

Return Type : void


Method : setSpeed(value: number)

Purpose : Set speed of animation

Parameters | Name | Type | Description | --- | --- | --- | | value | number | Playback speed. The value must be any positive integer.

Return Type : void


Method : setBgColor(value: string)

Purpose : Set a backgroud color

Parameters | Name | Type | Description | --- | --- | --- | | value | string | Color values. Hex(#fff) or string('red') to set background color

Return Type : void


Method : save(target: ExportableType)

Purpose : Export current animation to other file type

Parameters | Name | Type | Description | --- | --- | --- | | value | ExportableType | File type to export

Return Type : void


Method : getVersion()

Purpose : Return current ThorVG version

Return Type : LibraryVersion

Examples

Please check these examples in various environments.