P25:React高级-CSS3实现react动画

目录
文章目录隐藏
  1. 新建一个 Boss 组件
  2. 编写业务逻辑
  3. 加入 CSS 动画

前端的动画技术发展到现在,完全可以独立出一个岗位。我目前不属于动画岗,能力有限,也只是简单的给小伙伴们讲讲,做一些前端常用的效果。本文先用我们最熟悉的 CSS3 在 React 中制作一个显示隐藏的动画特效,注意这是用 CSS3 实现的,其实 React 只做了业务逻辑。

新建一个 Boss 组件

需要给“美女服务菜单”增加一个 Boss 服务人物,点击一下按钮就会自动出现”Boss 级人物-孙悟空”,不要管什么恰当不恰当了,咱们是为了练习一下动画。在src文件夹下,新建一个Boss.js文件。然后用快速生成的方式生成基本结构:

在使用这些命令前,你要保证你安装了 VSCode 中的Simple React Snippets插件。

  • 先输入 imrc,然后回车,这是为了用import引入Reactcomponent
  • 再输入 ccc 然后回车,生成最基本的带constructor的代码结构。

就会生成下面的基本代码了(2 秒钟完成下面的代码,这也是你工作中提高效率的关键):

import React, { Component } from 'react';
class Boss extends Component {
    constructor(props) {
        super(props);
        this.state = {  }
    }
    render() { 
        return (  );
    }
}

export default Boss;

然后我们先写一些 JSX 代码,让页面上有一段文字和一个按钮。代码如下:

import React, { Component } from 'react';
class Boss extends Component {
    constructor(props) {
        super(props);
        this.state = {  }
    }
    render() { 
        return ( 
            <div>
                <div>BOSS 级人物-孙悟空</div>
                <div><button>召唤 Boss</button></div>
            </div>
          );
    }
}

export default Boss;

编写业务逻辑

目前组件没有任何业务逻辑,只有一个 UI,这是没办法实现动画效果的。业务逻辑是点击按钮的时候可以改变字的’显示隐藏’。 要实现这个业务逻辑,先在constructor里增加 state 值isShow,详情请看下面的代码。

this.state = { 
    isShow:true
}

然后把“BOSS 级人物-孙悟空”的部分,增加className,并用isShow进行控制。

<div className={this.state.isShow ? 'show' : 'hide'}>BOSS 级人物-孙悟空</div>

需要点击按钮时,有响应的事件,所以需要一个方法,我们编写一个toToggole()方法,代码如下:

toToggole(){
    this.setState({
        isShow:this.state.isShow ? false : true
    })
}

意思就是当isShowtrue时,我们赋值false;当isShowfalse 时,我们赋值true`.

有了方法后,可以给<button>加上onClick响应事件了,代码如下:

<div><button onClick={this.toToggole}>召唤 Boss</button></div>

写完这个事件,还是需要到constructor里绑定一下this。代码如下:

constructor(props) {
    super(props);
    this.state = { 
        isShow:true
    }
    this.toToggole = this.toToggole.bind(this);
}

这样我们的基本业务逻辑就算写完了,可以把代码加入到Meinv组件中,看一下效果了。

加入 CSS 动画

在页面上看不出任何的效果,如果你打开浏览器控制台是可以看到每次点击按钮,class 都会变化的。界面没变化,知识我们没有写 CSS。现在可以在style.css里写样式,代码如下:

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

这样就用 CSS3 实现了 React 中动画,如下图

React 高级-CSS3 实现 react 动画

这知识最简单的实践动画,所以先不要吐槽,接下来我们会继续讲解 React 中动画的知识。继续跟着码云笔记一起学习吧。

「点点赞赏,手留余香」

0

给作者打赏,鼓励TA抓紧创作!

微信微信 支付宝支付宝

还没有人赞赏,快来当第一个赞赏的人吧!

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系maynote@foxmail.com处理
码云笔记 » P25:React高级-CSS3实现react动画

发表回复