react实现科幻电影中门上锁动画效果代码
代码语言:html
所属分类:动画
代码描述:react实现科幻电影中门上锁动画效果代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html> <html lang="en" > <head> <meta charset="UTF-8"> <style> body { background-color:#111; overflow: hidden; text-align:center; } body, html { height: 100%; width: 100%; margin: 0; padding: 0; } svg{ width:100%; height:100%; } #app{ width:100%; height:100%; } #hitRing{ cursor:pointer; -webkit-tap-highlight-color:transparent; } .disabled{ pointer-events:none; } .enabled{ pointer-events:auto; } </style> </head> <body > <div id="app"></div> <script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/react.production.16.13.js"></script> <script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/react-dom.production.16.13.js"></script> <script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/TweenMax.min.js"></script> <script > function _defineProperty(obj, key, value) {if (key in obj) {Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true });} else {obj[key] = value;}return obj;}class DoorUI extends React.Component { constructor(props) { super(props);_defineProperty(this, "componentDidUpdate", e => { var tl = new TimelineMax({ onComplete: this.setBtnEnabled, onCompleteParams: [true] }).timeScale(1.8); tl.staggerTo('.radialGroup g', 1, { fill: this.state.open ? '#41E969' : '#F70048' }, 0.2). to('.bar', 0.4, { strokeWidth: this.state.open ? 0 : 4, transformOrigin: '50% 50%', stroke: this.state.open ? '#41E969' : '#F70048', ease: Sine.easeOut }, 0). to('.ring', 0.4, { stroke: this.state.open ? '#41E969' : '#F70048' }, 0). staggerTo('.radialGroup g', 0.3, { cycle: { alpha: [0] }, repeat: 1, ease: Sine.easeOut, yoyoEase: Sine.easeOut }, 0.1, 0). staggerTo('.radialGroup g path', 0.3, { cycle: { scale: [0.95] }, repeat: 1, svgOrigin: '400 300', ease: Sine.easeIn, yoyoEase: Sine.easeOut //Elastic.easeOut.config(0.5,0.75) }, 0.0163, 0.1). to('.radialGroup', 1, { svgOrigin: &#.........完整代码请登录后点击上方下载按钮下载查看
网友评论0