lottie-web 实现可以播放zip文件的播放器

原文链接: lottie-web 实现可以播放zip文件的播放器

上一篇: 简单魔方的旋转 [todo]

下一篇: lottie-minify在线压缩lottie 的json数据

资源下载和相关链接

https://lottiefiles.com/

https://design.alipay.com/lolita

https://design.alipay.com/emotion/editor

https://www.npmjs.com/package/path-browserify

https://stuk.github.io/jszip/

一般下载zip包的好处是和图片一起的, 而且只需要一次下载行了, 如果lottie有图片, 只用一个json的话是需要重新请求下载图片的

up-24f8434abaaa8305f09d5369d4cec6f6032.png

使用jszip解压zip包

上传zip包后, 我们就能直接播放了, 可以逐帧控制, 以及暂停重置等

up-8680e0015d31ae6ce8b09da95a1ffad38f5.png

在mac环境下, 有时候会莫名其妙压缩进来一些系统文件, 可以加个判断去除 含有__MACOSX的路径

浏览器端 使用这个模拟node上的path https://www.npmjs.com/package/path-browserify

jszip中导出 数据, 可以导出string然后在用json处理, 图片资源可以直接导出为blob, 但是可能会有类型问题, 到时候手动换一下, 我没换也不影响浏览器解析

zip.files[newPath].async("blob")

使用帧来控制, 相对于时间更加好控制一点, lottie-web支持跳转播放和跳转暂停, 所以可以简单实现滑动进度条播放, 记得加throttle, 不然会有点卡, 一般100ms就够了

const maxFrame = computed(() => state.ins?.totalFrames || 1);
const minFrame = computed(() => state.ins?.firstFrame || 0);
const frameRange = computed(() => maxFrame.value - minFrame.value + 1 || 1);

    state.ins.goToAndStop(f, isFrame);

  state.ins.goToAndPlay(f, isFrame);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
lottie-web是一个开源的JavaScript库,用于在Web上渲染和播放Lottie动画。Lottie动画是由Adobe After Effects创建的矢量动画,可以使用Bodymovin插件导出为JSON格式,然后在网页上使用lottie-web库进行渲染和播放lottie-web库提供了很多功能和选项,以便开发者可以根据自己的需求使用和定制动画。它可以用于创建交互式的动画效果,如按钮的点击动画、加载动画、进度条动画等。此外,它还支持设置动画的循环次数、播放速度、淡入淡出效果等。 在使用lottie-web时,我们需要引入相关的CSS和JavaScript文件,并通过HTML的canvas元素来创建动画的容器。然后,我们可以使用lottie.loadAnimation()方法来加载并初始化动画,在loadAnimation()方法中,我们可以传入一些参数,如JSON文件路径、容器元素、循环次数等。 一旦动画加载完成,我们就可以使用lottie.play()方法来播放动画,使用lottie.stop()方法来停止动画。此外,还有一些其他的方法,如lottie.pause()方法暂停动画,lottie.setSpeed()方法设置播放速度等。 值得一提的是,lottie-web还支持事件监听,我们可以通过lottie.addEventListener()方法来监听动画的各种事件,如动画加载完成、播放完成等,以便于我们在合适的时机进行相应的处理。 总之,lottie-web文档提供了全面的使用说明和示例代码,可供开发者参考和学习。使用lottie-web,我们可以轻松地在Web上使用Lottie动画,为网页添加更加生动和有趣的效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值