React-高级内容之动画效果

87 阅读1分钟

1、使用css实现过渡效果

style.css

.show {
	opacity: 1;
	transition: all 1s ease-in;
}

.hide {
	opacity: 0;
	transition: all 1s ease-in;
}

App.js

import React,{Component,Fragment} from "react";
import './style.css';

class App extends Component{
	constructor(props){
		super(props);
		this.state = {
			show: true,
		}
		this.handleToggle = this.handleToggle.bind(this);
	}
	
	render(){
		return(
		<Fragment>
			<div className={this.state.show?'show':'hide'}>Test</div>
			<button onClick={this.handleToggle}>toggle</button>
	    </Fragment>
		);
	}
	
	handleToggle(){
		this.setState({
			show: this.state.show?false:true,
		});
	}

}
export default App;

index.js

import React from 'react';
import ReactDOM from 'react-dom';
import App from './App'

ReactDOM.render(
	<App />,
	document.getElementById('root')
);

2、使用css实现动画效果

.show {
	animation: show-item 2s ease-in forwards;
}

.hide {
	animation: hide-item 2s ease-in forwards;
}

@keyframes show-item{
	0% {
		opacity: 0;
		color:red;
	}
	50% {
		opacity: 0.5;
		color: green;
	}
	100% {
		opacity: 1;
		color: blue;
	}
}

@keyframes hide-item{
	0% {
		opacity: 1;
		color:red;
	}
	50% {
		opacity: 0.5;
		color: green;
	}
	100% {
		opacity: 0;
		color: blue;
	}
}

3、使用react-transition-group库,实现动画

官网-https://github.com/reactjs/react-transition-group