1.0.0-beta.16 • Published 1 day ago

@thorvg/lottie-player v1.0.0-beta.16

Weekly downloads
-
License
MIT
Repository
github
Last release
1 day ago

@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

PropertyDescriptionTypeDefault ValueRequired
srcA graphic resource to play. It could be an internal/external URL or JSON string for Lottie.stringundefinedY
speedAnimation speed (for Lottie)number1N
autoplayWhen set to true, automatically plays the animation on loading it (for Lottie)booleanfalseN
countNumber of times to loop the animationnumberundefinedN
loopWhen 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.booleanfalseN
directionDirection of the animation. Set to 1 to play the animation forward or set to -1 to play it backward.number (1 or -1)1N
modePlay mode. Setting the mode to PlayMode.Bounce plays the animation in an indefinite cycle, forwards and then backwards.PlayModePlayMode.NormalN
intermissionDuration (in milliseconds) to pause before playing each cycle in a looped animation. Set this parameter to 0 (no pause) or any positive number.number1N

Events

You can adapt the event with the following code example

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

player.addEventListener('load', () => {
  // TODO: implements
});
NameDescription
loadA graphic resource is loaded
errorAn animation data can’t be parsed.
readyAnimation data is loaded and player is ready
playAnimation starts playing
pauseAnimation is paused
stopAnimation is stopped
freezeAnimation is paused due to player being invisible
loopAn animation loop is completed
completeAnimation is complete (all loops completed)
frameA 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.

1.0.0-beta.16

1 day ago

1.0.0-beta.15

15 days ago

1.0.0-beta.14

22 days ago

1.0.0-beta.13

1 month ago

1.0.0-beta.12

1 month ago

1.0.0-beta.11

2 months ago

1.0.0-beta.10

2 months ago

1.0.0-beta.9

2 months ago

1.0.0-beta.2

4 months ago

1.0.0-beta.3

4 months ago

1.0.0-beta.4

4 months ago

1.0.0-beta.5

4 months ago

1.0.0-beta.1

5 months ago

1.0.0-beta.6

3 months ago

1.0.0-beta.7

3 months ago

1.0.0-beta.8

3 months ago

1.0.0-beta.0

5 months ago

1.0.0

5 months ago

0.1.0

5 months ago