react中控制div的位置移动动画
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%;
}
}