首页 >> js开发 >> jsreact使用CSS实现react动画功能示例js大全
jsreact使用CSS实现react动画功能示例js大全
发布时间: 2021年1月13日 | 浏览:
| 分类:js开发
本文实例讲述了react使用CSS实现react动画功能。分享给大家供大家参考,具体如下:react动画:
import React, { Component } from 'react';
class Boss extends Component {
constructor(props) {
super(props);
this.state = {
isShow:true
}
this.toTogger=this.toTogger.bind(this)
}
render() {
return (
);
}
toTogger() {
this.setState({
isShow:this.state.isShow?false:true
})
}
}
export default Boss;
import React, { Component } from 'react';
class Boss extends Component {
constructor(props) {
super(props);
this.state = {
isShow:true
}
this.toTogger=this.toTogger.bind(this)
}
render() {
return (
);
}
toTogger() {
this.setState({
isShow:this.state.isShow?false:true
})
}
}
export default Boss;
css:
.hide{opacity: 1;transition: all 1.5s ease-in;}
.show{opacity: 0;transition: all 1.5s ease-in;}
.hide{opacity: 1;transition: all 1.5s ease-in;}
.show{opacity: 0;transition: all 1.5s ease-in;}
keyframes动画:
.hide{animation: hide-item 2s ease-in forwards;}
.show{animation: show-item 2s ease-in forwards;}
@keyframes hide-item{
0%{
opacity: 0;
color: red;
}
50%{
opacity: 0.5;
color: saddlebrown;
}
100%{
opacity: 1;
color: yellow;
}
}
@keyframes show-item{
0%{
opacity: 1;
color:green;
}
50%{
opacity: 0.5;
color:greenyellow;
}
100%{
opacity: 0;
color: yellow;
}
}
.hide{animation: hide-item 2s ease-in forwards;}
.show{animation: show-item 2s ease-in forwards;}
@keyframes hide-item{
0%{
opacity: 0;
color: red;
}
50%{
opacity: 0.5;
color: saddlebrown;
}
100%{
opacity: 1;
color: yellow;
}
}
@keyframes show-item{
0%{
opacity: 1;
color:green;
}
50%{
opacity: 0.5;
color:greenyellow;
}
100%{
opacity: 0;
color: yellow;
}
}
react-transition-group动画库:
import {CSSTransition} from 'react-transition-group';
render() {
return (
in={this.state.isShow}
timeout={2000}
classNames="boss-text"
unmountOnExit
>
{/*
);
}
import {CSSTransition} from 'react-transition-group';
render() {
return (
in={this.state.isShow}
timeout={2000}
classNames="boss-text"
unmountOnExit
>
{/*
);
}
.boss-text-enter{opacity: 0;}
.boss-text-enter-active{opacity: 1;transition: opacity 2000ms;}
.boss-text-enter-done{opacity: 1;}
.boss-text-exit{opacity: 1;}
.boss-text-exit-active{opacity: 0;transition: opacity 2000ms;}
.boss-text-exit-done{opacity: 0;}
.boss-text-enter{opacity: 0;}
.boss-text-enter-active{opacity: 1;transition: opacity 2000ms;}
.boss-text-enter-done{opacity: 1;}
.boss-text-exit{opacity: 1;}
.boss-text-exit-active{opacity: 0;transition: opacity 2000ms;}
.boss-text-exit-done{opacity: 0;}
多DOM动画:
import React, { Component, Fragment } from 'react';
import List from './List.js';
import axios from 'axios';
import Boss from './Boss';
import {CSSTransition,TransitionGroup} from 'react-transition-group'
class Test extends Component {
constructor(props) {
super(props);
this.state={
inputValue:'aaa',
list:[],
}
// this.add=this.add.bind(this);
}
addList() {
this.setState({
list:[...this.state.list,this.state.inputValue],
inputValue:''
})
}
change(e) {
this.setState({
// inputValue:e.target.value
inputValue:this.input.value
})
}
delete(i) {
// console.log(i);
const list = this.state.list;
list.splice(i,1);
this.setState({
list:list
})
}
componentDidMount() {
// console.log('componentDidMount');
axios.get('https://www.easy-mock.com/mock/5e1d3d1564a3c20d7f366f91/ReactDemo1/App')
.then((res)=>{
console.log('获取数据'+JSON.stringify(res));
this.setState({
list:res.data.data
});
})
.catch((error)=>{console.log('获取数据失败'+error)});
}
render() {
console.log('3-render');
return (
{this.input=input}} value={this.state.inputValue} onChange={this.change.bind(this)}/>
);
}
}
export default Test;
import React, { Component, Fragment } from 'react';
import List from './List.js';
import axios from 'axios';
import Boss from './Boss';
import {CSSTransition,TransitionGroup} from 'react-transition-group'
class Test extends Component {
constructor(props) {
super(props);
this.state={
inputValue:'aaa',
list:[],
}
// this.add=this.add.bind(this);
}
addList() {
this.setState({
list:[...this.state.list,this.state.inputValue],
inputValue:''
})
}
change(e) {
this.setState({
// inputValue:e.target.value
inputValue:this.input.value
})
}
delete(i) {
// console.log(i);
const list = this.state.list;
list.splice(i,1);
this.setState({
list:list
})
}
componentDidMount() {
// console.log('componentDidMount');
axios.get('https://www.easy-mock.com/mock/5e1d3d1564a3c20d7f366f91/ReactDemo1/App')
.then((res)=>{
console.log('获取数据'+JSON.stringify(res));
this.setState({
list:res.data.data
});
})
.catch((error)=>{console.log('获取数据失败'+error)});
}
render() {
console.log('3-render');
return (
{this.input=input}} value={this.state.inputValue} onChange={this.change.bind(this)}/>
);
}
}
export default Test;
希望本文所述对大家react程序设计有所帮助。
import React, { Component } from 'react';
class Boss extends Component {
constructor(props) {
super(props);
this.state = {
isShow:true
}
this.toTogger=this.toTogger.bind(this)
}
render() {
return (
大BOSS--孙悟空
);
}
toTogger() {
this.setState({
isShow:this.state.isShow?false:true
})
}
}
export default Boss;
import React, { Component } from 'react';
class Boss extends Component {
constructor(props) {
super(props);
this.state = {
isShow:true
}
this.toTogger=this.toTogger.bind(this)
}
render() {
return (
大BOSS--孙悟空
);
}
toTogger() {
this.setState({
isShow:this.state.isShow?false:true
})
}
}
export default Boss;
css:
.hide{opacity: 1;transition: all 1.5s ease-in;}
.show{opacity: 0;transition: all 1.5s ease-in;}
.hide{opacity: 1;transition: all 1.5s ease-in;}
.show{opacity: 0;transition: all 1.5s ease-in;}
keyframes动画:
.hide{animation: hide-item 2s ease-in forwards;}
.show{animation: show-item 2s ease-in forwards;}
@keyframes hide-item{
0%{
opacity: 0;
color: red;
}
50%{
opacity: 0.5;
color: saddlebrown;
}
100%{
opacity: 1;
color: yellow;
}
}
@keyframes show-item{
0%{
opacity: 1;
color:green;
}
50%{
opacity: 0.5;
color:greenyellow;
}
100%{
opacity: 0;
color: yellow;
}
}
.hide{animation: hide-item 2s ease-in forwards;}
.show{animation: show-item 2s ease-in forwards;}
@keyframes hide-item{
0%{
opacity: 0;
color: red;
}
50%{
opacity: 0.5;
color: saddlebrown;
}
100%{
opacity: 1;
color: yellow;
}
}
@keyframes show-item{
0%{
opacity: 1;
color:green;
}
50%{
opacity: 0.5;
color:greenyellow;
}
100%{
opacity: 0;
color: yellow;
}
}
react-transition-group动画库:
import {CSSTransition} from 'react-transition-group';
render() {
return (
in={this.state.isShow}
timeout={2000}
classNames="boss-text"
unmountOnExit
>
{/*
大BOSS--孙悟空
*/}大BOSS--孙悟空
);
}
import {CSSTransition} from 'react-transition-group';
render() {
return (
in={this.state.isShow}
timeout={2000}
classNames="boss-text"
unmountOnExit
>
{/*
大BOSS--孙悟空
*/}大BOSS--孙悟空
);
}
.boss-text-enter{opacity: 0;}
.boss-text-enter-active{opacity: 1;transition: opacity 2000ms;}
.boss-text-enter-done{opacity: 1;}
.boss-text-exit{opacity: 1;}
.boss-text-exit-active{opacity: 0;transition: opacity 2000ms;}
.boss-text-exit-done{opacity: 0;}
.boss-text-enter{opacity: 0;}
.boss-text-enter-active{opacity: 1;transition: opacity 2000ms;}
.boss-text-enter-done{opacity: 1;}
.boss-text-exit{opacity: 1;}
.boss-text-exit-active{opacity: 0;transition: opacity 2000ms;}
.boss-text-exit-done{opacity: 0;}
多DOM动画:
import React, { Component, Fragment } from 'react';
import List from './List.js';
import axios from 'axios';
import Boss from './Boss';
import {CSSTransition,TransitionGroup} from 'react-transition-group'
class Test extends Component {
constructor(props) {
super(props);
this.state={
inputValue:'aaa',
list:[],
}
// this.add=this.add.bind(this);
}
addList() {
this.setState({
list:[...this.state.list,this.state.inputValue],
inputValue:''
})
}
change(e) {
this.setState({
// inputValue:e.target.value
inputValue:this.input.value
})
}
delete(i) {
// console.log(i);
const list = this.state.list;
list.splice(i,1);
this.setState({
list:list
})
}
componentDidMount() {
// console.log('componentDidMount');
axios.get('https://www.easy-mock.com/mock/5e1d3d1564a3c20d7f366f91/ReactDemo1/App')
.then((res)=>{
console.log('获取数据'+JSON.stringify(res));
this.setState({
list:res.data.data
});
})
.catch((error)=>{console.log('获取数据失败'+error)});
}
render() {
console.log('3-render');
return (
{this.input=input}} value={this.state.inputValue} onChange={this.change.bind(this)}/>
{
this.state.list.map((v,i)=>{
return(
timeout={2000}
classNames='boss-text'
unmountOnExit
key={i}
>
);
})
}
);
}
}
export default Test;
import React, { Component, Fragment } from 'react';
import List from './List.js';
import axios from 'axios';
import Boss from './Boss';
import {CSSTransition,TransitionGroup} from 'react-transition-group'
class Test extends Component {
constructor(props) {
super(props);
this.state={
inputValue:'aaa',
list:[],
}
// this.add=this.add.bind(this);
}
addList() {
this.setState({
list:[...this.state.list,this.state.inputValue],
inputValue:''
})
}
change(e) {
this.setState({
// inputValue:e.target.value
inputValue:this.input.value
})
}
delete(i) {
// console.log(i);
const list = this.state.list;
list.splice(i,1);
this.setState({
list:list
})
}
componentDidMount() {
// console.log('componentDidMount');
axios.get('https://www.easy-mock.com/mock/5e1d3d1564a3c20d7f366f91/ReactDemo1/App')
.then((res)=>{
console.log('获取数据'+JSON.stringify(res));
this.setState({
list:res.data.data
});
})
.catch((error)=>{console.log('获取数据失败'+error)});
}
render() {
console.log('3-render');
return (
{this.input=input}} value={this.state.inputValue} onChange={this.change.bind(this)}/>
{
this.state.list.map((v,i)=>{
return(
timeout={2000}
classNames='boss-text'
unmountOnExit
key={i}
>
);
})
}
);
}
}
export default Test;
希望本文所述对大家react程序设计有所帮助。
相关文章:
- jsvue 页面回退mounted函数不执行的解决方案js大全
- js解决vue页面渲染但dom没渲染的操作js大全
- jsVUE项目axios请求头更改Content-Type操作js大全
- jsVue-CLI 3 scp2自动部署项目至服务器的方法js大全
- js使用React-Router实现前端路由鉴权的示例代码js大全
- JavaScriptthree.js欧拉角和四元数的使用方法
- js关于angular浏览器兼容性问题的解决方案js大全
- jsvue+axios全局添加请求头和参数操作js大全
- jsvue项目使用$router.go(-1)返回时刷新原来的界面操作js大全
- jsvuex中store存储store.commit和store.dispatch的用法js大全