要求:1、有两个AE(AdobeAfterEffects)生成的动画json文件;2、antdm实现的下拉刷新组件PullToRefresh;3.需要自定义定义自己特色的下拉刷新动画的特点;分析1.动画1json用于刷新;2.动画2json为结尾;3.1)显示动画1时隐藏动画2;2)松开手指动画1开始播放;3)动画1播放完毕,显示并播放动画2;4)动画2播放完后,动画1显示但不播放;直接上传代码:importReact,{useEffect}from'react';从'lottie-web'导入lottie;从'antd-mobile-v5'导入{PullToRefresh};从'./animationJson/refreshing.json'导入refreshingJson;从'./animationJson/end.json'导入endJson;导入'./index.scss';letrefreshingAnimation;letendAnimation;exportdefault(props)=>{//下拉刷新动画相关useEffect(()=>{//创建绑定动画refreshingAnimation=lottie.loadAnimation({container:document.getElementById('refreshingDom'),renderer:'svg',loop:false,autoplay:false,animationData:refreshingJson,});endAnimation=lottie.loadAnimation({container:document.getElementById('completeDom'),渲染器:'svg',循环:假,自动播放:假,动画数据:endJson,});//第一部分动画完成refreshingAnimation.addEventListener('complete',()=>{//dom1隐藏,dom2显示document.getElementById('refreshingDom').style.display='none';document.getElementById('completeDom').style.display='unset';//动画2从第一帧开始播放endAnimation?.goToAndPlay(0);});//第二部分动画完成endAnimation.addEventListener('complete',()=>{//隐藏dom2,显示dom1//本来想用一个flag来判断元素上的显示,但是是无效的,所以我只能做这个//销毁return()=>{refreshingAnimation.destroy();endAnimation.destroy();}},[])constcontrolAnimation=(status)=>{if(status==='refreshing'){//动画1正在播放refreshingAnimation?.goToAndPlay(0);}}返回
