react中控制div的位置移动动画

时间:2021-03-26 18:29:07

js文件

import React, { Component} from ‘react‘; import ‘./compile.less‘;
class Compile extends Component { constructor(props) {   super(props)   this.state = {     show: true   } } zoom=()=>{   this.setState({     show: this.state.show ? false : true   }) } render() {   return (     <div className={this.state.show ? ‘show compile‘ : ‘hide compile‘}>       <div className="compile-title">历史记录</div>       <div className="compile-details"></div>       <div className="compile-copy"></div>       <div className="cut" onClick={this.zoom}></div>     </div>   ) } } export default Compile               less文件 .compile{   position: relative;   top: -227px;   left: 80%;   z-index:2;   width:320px;   height:100%;   background:#e7e7e7;   .compile-title{     width:320px;     height:50px;     font-size: 16px;     color: #333333;     line-height:50px;     padding-left:12px;     background:#f0f0f0;     border-bottom:1px solid #aaaaaa;   }   .compile-details{     width:320px;     height:382px;     background:#e7e7e7;     border-bottom:1px solid #cccccc;   }   .compile-copy{     width:320px;     height:249px;     background:#e7e7e7;   }   .cut{     position: absolute;     top: 50%;     left: -11px;   } } .show {   animation: show-item .8s ease-in forwards; } .hide {   animation: hide-item .8s ease-in forwards; } @keyframes show-item {   0% {     left: 100%;   }   100% {     left: 80%;   } } @keyframes hide-item {   0% {     left: 80%;   }   100% {     left: 100%;   } }