react使用CSS实现react动画功能示例

本文实例讲述了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 (
      <div>
        <div className={this.state.isShow?'show':'hide'}>大BOSS--孙悟空</div>
        <div><button onClick={this.toTogger}>召唤</button></div>
      </div>
    );
  }

  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;}

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;
  }
}

react-transition-group动画库:

import {CSSTransition} from 'react-transition-group';  

render() {
    return (
      <div>
        <CSSTransition
          in={this.state.isShow}
          timeout={2000}
          classNames="boss-text"
          unmountOnExit
        >
        {/* <div className={this.state.isShow?'show':'hide'}>大BOSS--孙悟空</div> */}
        <div>大BOSS--孙悟空</div>
        </CSSTransition>
    <div><button onClick={this.toTogger}>{this.state.btn}</button></div>
      </div>
    );
  }
.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 (
      <Fragment>
      <div>
        <input ref={(input)=>{this.input=input}} value={this.state.inputValue} onChange={this.change.bind(this)}/>
        <button onClick={this.addList.bind(this)}>添加</button>
      </div>
      <ul>
        <TransitionGroup>
          {
            this.state.list.map((v,i)=>{
              return(
                <CSSTransition
                  timeout={2000}
                  classNames='boss-text'
                  unmountOnExit
                  key={i}
                >
                  <List key={i} content={v} index={i} delete={this.delete.bind(this)} />
                </CSSTransition>
              );
            })
          }
        </TransitionGroup>
      </ul>
      <Boss/>
      </Fragment>
    );
  }
}

export default Test;

希望本文所述对大家react程序设计有所帮助。

(0)

相关推荐

  • 基于react项目打包css引用路径错误解决方案

    没有去修改create-react-app默认的配置文件 执行npm start 一切正常, 但是 npm run build 之后生成的打包文件只能在根目录访问 这样放在服务器目录就访问不到了 报错为 手动更改index.html的路径之后又报静态资源引入错误 报错 解决方案 解决: 在package.json下面增加"homepage": ".". 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们.

  • 详解使用create-react-app添加css modules、sasss和antd

    create-react-app 是facebook的官方脚手架,对于个人开发者和中小型公司快速创建项目非常推荐.react的CSS解决方案有很多,这里我技术选型时用 css modules 和 sass ,然后配合antd使用通用组件库.但是create-react-app原生并不支持 css modules 和 sass ,所以需要额外配置. 配置 增加css modules和sass 使用eject暴露配置 create-react-app 默认是没有暴露 webpack 配置的,所以需要

  • 在create-react-app中使用css modules的示例代码

    前言 如果我们从零开始用webpack + es6来结合react开发前端应用,那势必会在各种webpack配置中消耗大量精力,于是便有了各种脚手架,create-react-app就是其中之一. 对于css modules,在react中,通常用它来避免预料之外样式规则相互覆盖以及实现其他功能. 配置弹出配置文件 如果直接使用create-react-app搭建一个项目,所有的配置文件都被隐藏了,整个目录就先这样 所以,第一步是将所有的配置文件弹出,在根目录运行以下代码 npm run eje

  • ReactJs设置css样式的方法

    前段时间看了React Native,但是感觉在安卓反面的开发并不成熟.有较多功能有待完善,而且自己在实际运用的过程中在一些模块上遇到了不晓得阻力,又苦于网上没有找到那么多资源.于是打算先放一段时间,还是回过头来看ReactJs吧. React颠覆了html的传统思维,代码基本都写在<script  type="text/babel"></script>标签里面.我开发的时候采用的是IDEA,当然也可以使用atom或者webstor.使用IDEA时,需要在set

  • 在Create React App中使用CSS Modules的方法示例

    前提条件 请先进行全局安装 create-react-app 插件哈,安装命令:npm install create-react-app -g 先使用 create-react-app 命令下载一个脚手架工程,安装命令: # 使用 npx $ npx create-react-app my-app # 使用 npm $ npm init npx create-react-app my-app # 使用 yarn $ yarn create react-app my-app 运行项目 $ cd m

  • react中使用css的7中方式(最全总结)

    第一种: 在组件中直接使用style 不需要组件从外部引入css文件,直接在组件中书写. import React, { Component } from "react"; const div1 = { width: "300px", margin: "30px auto", backgroundColor: "#44014C", //驼峰法 minHeight: "200px", boxSizing: &

  • react使用CSS实现react动画功能示例

    本文实例讲述了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

  • react echarts tree树图搜索展开功能示例详解

    目录 前言 最终效果 版本信息 核心功能: 关键思路: 附上代码 数据data.js 功能: TreeUtils 总结: 前言 umi+antd-admin 框架中使用类组件+antd结合echarts完成树图数据展示和搜索展开功能 最终效果 版本信息 "antd": "3.24.2", "umi": "^2.7.7", "echarts": "^4.4.0", "echart

  • react+axios实现github搜索用户功能(示例代码)

    加载 请求成功 请求失败 在文件路径点击cmd 回车 首先把服务器打开 npm start app.js import React, { Component } from 'react' import "./App.css" import Header from './conompents/Header' import List from './conompents/List' export default class App extends Component { // 初始化sta

  • 可定制React自动完成搜索组件Turnstone实现示例

    目录 正文 特点 如何使用它 1.安装并导入Turnstone 2.基本使用方法 3.默认的组件道具 预览 正文 一个高度可定制的.易于使用的React自动完成搜索组件. 特点 轻量级的React搜索框组件 用可定制的标题将来自多个API或其他数据源的搜索结果分组 指定列表框选项的最大数量,以及每组的加权显示比例 用你自己的React组件完全定制列表框选项.添加图片.图标.额外的子选项.按组或索引的不同视觉处理等等...... 在输入的文本下面显示typeahead自动建议文本 使用各种CSS方

  • react 原生实现头像滚动播放的示例

    本文介绍了react 原生实现头像滚动播放的示例,分享给大家,具体如下: 之前需要的是下面这个效果 现在... 憋说话,先看看效果. 感觉很简单呀,直接渲染,transform就可以了,嗯嗯,是的没错. 渲染出来,获取元素,然后添加css,美中不足衔接不是很顺畅,不过还是做出来了. <div className="avatar-transform" ref={this.tmall}> {!!personAvatar.length && personAvata

  • React+Koa实现文件上传的示例

    背景 最近在写毕设的时候,涉及到了一些文件上传的功能,其中包括了普通文件上传,大文件上传,断点续传等等 服务端依赖 koa(node.js框架) koa-router(Koa路由) koa-body(Koa body 解析中间件,可以用于解析post请求内容) koa-static-cache(Koa 静态资源中间件,用于处理静态资源请求) koa-bodyparser(解析 request.body 的内容) 后端配置跨域 app.use(async (ctx, next) => { ctx.

  • React实现一个通用骨架屏组件示例

    目录 骨架屏是什么? Demo 设计思路 具体实现 骨架屏是什么? 找到这里的同志,或多或少都对骨架屏有所了解,请容许我先啰嗦一句.骨架屏(Skeleton Screen)是一种优化用户弱网体验的方案,可以有效缓解用户等待的焦躁情绪. Demo 先看个demo 大概了解下最终的产物及其使用方式 npm install obiusm-react-components import { Skeleton } from 'obiusm-react-components'; <Skeleton isVi

  • react实现简单的拖拽功能

    本文实例为大家分享了react实现简单的拖拽功能的具体代码,供大家参考,具体内容如下 src文件夹下新建文件夹demo  然后在创建两个文件js和css demo.js文件代码 // react实现拖拽 import React from 'react' // 引入css样式 import './demo.css' class Drag extends React.Component {     constructor(props) {         super(props);        

  • react+zarm实现底部导航栏的示例代码

    目录 需要实现的效果 实现过程 1.使用 prop-types 库进行类型检查 2.使用 useNavigate 3.编写标签栏组件 4.使用标签栏组件 5.添加对应的页面路由 6.效果 参考资料 需要实现的效果 需要实现下面栏目固定,并且点击时切换到不同页面路由 实现过程 1.使用 prop-types 库进行类型检查 注意:自 React v15.5 起,React.PropTypes 已移入另一个包中.请使用 prop-types 库 代替. PropTypes 提供了使用不同验证器的例子

  • React Hooks钩子中API的使用示例分析

    目录 hooks是什么 Hooks的作用 使用Hooks组件前后开发模式的对比 Hooks使用策略 为什么要有Hooks useState useEffect使用 useEffect依赖项 使用情景 useMemo使用 useMemo缓存组件方式 useMemo和useEffect的区别 useCallback使用 useContext使用 useRef使用 为什么在函数组件中无法使用ref 如何在类组件中使用ref属性 自定义hooks hooks是什么 hooks理解字面意思就是钩子,是一些

随机推荐