video downloadhelper需要合作应用_复杂帧动画之移动端video采坑实现

本文介绍了在移动端实现复杂帧动画的探索过程,从Lottie、APNG到HTML video。遇到的挑战包括兼容性、体积和效果问题。最终选择了HTML video元素,但在自动播放和兼容性方面遇到了各种问题,如Safari和Chrome的限制、Android微信的异常行为等。通过调整策略和兼容性处理,成功实现了动画效果。
摘要由CSDN通过智能技术生成

本文由 IMWeb

在企鹅辅导品牌页中,我们需要实现一个动画如下:

4a28bda01338dcd5402eab07a66706e1.gif

页面滚动到动画区域,播放动画, 对应动画部分如下:

adb7c2adff0f6cfa19e6293591579687.gif

帧动画当前的实现有以下几种方式:

  1. GIF 动画

    大家比较熟悉的图片格式

  2. lottie(http://airbnb.io/lottie/)

    Airbnb 开源项目,通过解析 AE 动画为 json 数据,支持跨平台的动画效果解决方案;lottie 在辅导中已经有实际应用,使用过的同学都表示对其实现效果和开发速度表示称赞和推荐,如果你还不了解 lottie, 推荐 lottie 系列学习文章(https://imweb.io/topic/5b23a745d4c96b9b1b4c4efc)

  3. APNG (Animated Portable Network Graphics)

    基于 PNG 格式扩展的一种动画格式,增加了对动画图像的支持,其诞生是为了替代老旧的 GIF 格式,但部分浏览器不支持,需要考虑兼容;

  4. HTML video 元素

GIF 动画适用于处理色彩简单、动效简单的动画,如 logo 、 icon 图这样的小图动画,在上面需要实现的动画中明显细节比较多,区域也比较大,考虑到质量 GIF 排除在外

在使用哪种方式实现该动画上,结合同事 @ajaxchen 的调研结论:

  1. lottie 在设计师通过 AE 制作了动画之后,通过 AE 插件 bodymovin(https://aescripts.com/bodymovin/) 将动画导出 json 给到我们前端开发,在使用这段 json 数据中,我们引入了 lottie-web 脚本来解析这段 json 数据渲染成为SVG / canvas 动画,效果如下图, 左图为用 lottie 实现,右图为我我们的目标实现效果

    可以看到实现还是存在着差异,颜色、数字倾斜度、虚线的透视都没有达到预期,于是放弃lottie 的使用,但这并不否定 lottie 在实现其它动画的优秀效果

    d66f76df3a7260d98dcd407e4c50e192.png

  2. APNG

    在对设计师给到的分段的动画帧图片压缩之后,其实现结果 apng 大小高达 29M,webp 格式 17M, 如此庞大的体积

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值