1.0.24 • Published 2 years ago

@zaqmjuop/libgif v1.0.24

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

@zaqmjuop/libgif 介绍和 示例

这是libgif-js 的一个分支,该项目被实现为一个用来在浏览器端对 GIF 进行解码和操纵动画的脚本组件。

如果你喜欢它,请给它一个 Star!

添加了一些变化

  • 优化了播放控制逻辑,添加了控制播放速率、播放方向、循环播放的功能
  • 优化了解码逻辑,解码耗时降低了一倍以上
  • 增加了内存缓存池,现在对同一地址的图片不会再重复请求或重复解码
  • 增加了自动适应元素宽高的能力

用法示例

安装

npm i @zaqmjuop/libgif

在页面里放置一个画布容器

<canvas id="myGif" />

初始化控制器示例

import libgif from '@zaqmjuop/libgif'

const controls = libgif({
  gif: document.getElementById('myGif'),
  src: 'https://img95.699pic.com/photo/40165/2060.gif_wh860.gif'
})

API 说明

构造函数选项

  • gif: HTMLCanvasElement必要 呈现动画的画布容器
  • src: string可选 初始化后自动播放的图片地址
  • forword: boolean可选 播放方向,默认值是 true,即正序播放
  • rate: number可选 播放速率,默认值是 1,即 1 倍速率
  • loop: boolean可选循环播放,默认值是 true,即循环播放

控制器属性

  • playing: boolean只读 是否播放中
  • loopCount: number只读 循环播放次数
  • currentKey: string只读 当前播放的文件地址
  • currentFrameNo: number只读 当前播放帧的次序
  • rate: number 播放速率
  • forward: boolean 播放方向
  • loop: boolean 是否循环播放

控制器方法

  • play(): void 播放动画
  • pause(): void 暂停动画
  • jumpTo(No: number): void 跳转到指定次序,No 是指定帧的次序
  • loadUrl(key: string): void 加载新的 GIF 文件,key 是 GIF 文件地址
  • getDecodeData(key: string): DecodedData 获取 GIF 的解码信息,key 是已缓存的 GIF 文件地址
  • getDownload(key: string): DownloadRecord 获取 GIF 的文件内容,key 是已缓存的 GIF 文件地址
  • on(type: string, callback): void 监听事件
  • off(type: string, callback): void 卸载事件监听

控制器事件

  • play 从暂停到播放时触发
  • frameChange 播放次序改变时触发
  • pause 从播放到暂停时触发
  • playended 最后一帧播放完触发
  • decoded 有 GIF 文件解码完成时触发
  • downloaded 有 GIF 文件下载完成时触发
  • progress 有 GIF 文件下载时触发

注意事项

GIF 文件必须和您正在加载的页面位于同一域上。 因为该库的工作原理是通过 Ajax 请求 GIF 图像数据,解码 GIF 文件并获取帧信息,并将它们呈现在 canvas 元素上。

1.0.24

2 years ago

1.0.23

2 years ago

1.0.22

2 years ago

1.0.21

2 years ago

1.0.20

2 years ago

1.0.19

2 years ago

1.0.18

2 years ago

1.0.17

2 years ago

1.0.16

2 years ago

1.0.15

2 years ago

1.0.14

2 years ago

1.0.13

2 years ago

1.0.12

2 years ago

1.0.11

2 years ago

1.0.10

2 years ago

1.0.9

2 years ago

1.0.8

2 years ago

1.0.7

2 years ago

1.0.6

2 years ago

1.0.5

2 years ago

1.0.4

2 years ago

1.0.3

2 years ago

1.0.2

2 years ago

0.1.3

2 years ago

0.1.2

2 years ago

0.1.1

2 years ago

0.0.36

2 years ago

0.0.31

2 years ago

0.0.30

2 years ago

0.0.28

2 years ago

0.0.27

2 years ago

0.0.26

2 years ago

0.0.25

2 years ago

0.0.22

2 years ago

0.0.21

2 years ago

0.0.20

2 years ago

0.0.19

2 years ago

0.0.18

2 years ago

0.0.16

2 years ago

0.0.15

2 years ago

0.0.14

2 years ago

0.0.13

2 years ago

0.0.12

2 years ago

0.0.11

2 years ago

0.0.10

2 years ago

0.0.8

2 years ago

0.0.7

2 years ago

0.0.6

2 years ago

0.0.5

2 years ago

0.0.3

2 years ago

0.0.2

2 years ago

0.0.1

2 years ago