# c-lottie ### - c-lottie lottie动画 ### c-design交流群号:330647926 ### 示例预览 [https://cloud.vuedata.wang/cdesign/#/pages/lottie/lottie](https://cloud.vuedata.wang/cdesign/#/pages/lottie/lottie) #### ![微信小程序预览](https://mp-eeab6da6-80cd-4e80-844a-66b2a7203834.cdn.bspapp.com/cloudstorage/dca3227b-0028-47f6-b576-cb89def67177.png?x-oss-process=image/resize,m_fixed,w_240) ### 一、使用示例 #### vue2/vue3 ```html ``` #### vue3 ```html ``` ### 二、Props | 字段 | 类型 | 必填 | 默认值 | 描述 | | ----------- | -------- | ---- | ----------------------| ------------------------------- | canvasId | String | 否| 'c'+uuid(18) | canvasId 画布id 可不填此项 | | width | String | 否| 750rpx | 图像宽度 单位rpx/px | | height | String | 否| 750rpx | 图像高度 单位rpx/px | | src | String | 是| | Lottie文件地址 小程序只支持网络地址 | | data | String | 否| | Lottie文件data | | autoPlay | Boolean | 否| true | 是否自动播放 | | loop | Boolean | 否| true | 是否循环播放 | | renderer | String | 否| canvas | 可选值 svg,canvas 小程序不支持 | | isOnChange| Boolean | 否| false |false时不触发 EnterFrame监听 | ### 三、Event | 字段 | 描述 | | --------- | ------------------------ | | Complete | 监听动画播放完成 | | LoopComplete | 监听当前循环播放完成 | | EnterFrame | 监听动画播放进度 | | SegmentStart | 监听开始播放一个动画片段 | | dataReady | 加载完成事件 | | dataFailed | 加载失败事件 | ### 四、Methods #### 组件内方法统一使用 call(funName, args) 调用 ```js this.$refs.cLottieRef.call('play') //or const cLottieRef = ref() cLottieRef.value.call('play') ``` #### funName args入参为array类型 单个参数可传入string类型 * play(); - 播放 * stop(); - 停止播放 * pause(); - 暂停播放 * setSpeed(speed); -播放速度 speed: 1 为正常速度. * goToAndStop(value, isFrame); -暂停到某一时间点或帧 value:数值 isFrame:定义第一个参数是基于时间的值还是基于帧的值(默认为false) * goToAndPlay(value, isFrame); -从某一时间点或帧开始播放 value:数值 isFrame:定义第一个参数是基于时间的值还是基于帧的值(默认为false) * setDirection(direction); - direction: 1 为正向, -1 为反向. * playSegments(segments,forceFlag) - 播放选定的片段 segments:array.可以包含2个数值,它们将用作动画的第一帧和最后一帧。或者可以包含一个数组序列,每个数组带有2个数值。 forceFlag:boolean.如果设置为false,它将等待当前段完成。如果为真,则它将立即更新值。 * setSubframe(useSubFrames); - useSubFrames: 如果为false,它将遵循原始的AE fps。如果为true,它将更新每个请求动画帧的中间值。默认值为true。 * destroy(); - 销毁实例 * ... ### 方法与lottie-web 方法保持一致 [详情可参考](http://airbnb.io/lottie/#/web?id=usage) ### 微信小程序端会提示’发现 Lottie 动态创建 canvas 组件,但小程序不支持动态创建组件,接下来可能会出现异常‘ 组件内部已进行处理忽略即可 ### 暂不支持nvue nvue请使用性能更好的原生插件 ### 注意:由于Hbuilderx上传插件无法上传node_odules依赖 导入插件后进入插件目录/uni_modules/c-lottie 使用npm i 进行依赖安装