react中实现简单的动效

在react中如何实现一个简单的动效

需要使用一个插件:

npm install react-transition-group -s
//导入
import {Fragment} from 'react'
import {CSSTransition} from 'react-transition-group'

//需要实现动画效果的页面
<Fragment>
    <CSSTransition
        in={this.state.shows} // 如果this.state.show从false变为true,则动画入场,反之out出场
        timeout={1000} //动画执行1秒
        classNames='fade' //自定义的class名
        onEntered={() => {
            document.getElementById("loginForm").setAttribute("class", "loginAnimate");
            //可选,动画入场之后的回调,这里可以操作dom节点,如果想要动画效果只要进场,不要出场,可以在这里使用css中止动画效果
        }}
        // onExited={() => {
        //     document.getElementById("loginForm").setAttribute("class", "loginAnimate");
        //     //同理,动画出场之后的回调,也可以在这里来个setState啥的操作
        // }}
    >
        <div className="login" id='loginForm'>
            <div className="title">
                <div className="name">
                    欢迎使用BWM后台管理系统
                </div>
                <div className="description">
                    请登录
                </div>
            </div>
            <div className="loginForm">
                <form className="loginMsg">
                    <div className="loginLable">
                        <input placeholder="  手机号码" onChange={this.setTel.bind(this)} value={this.state.telephone}/>
                    </div>
                    <div className="loginLable">
                        <input type="password" placeholder="  密码" onChange={this.setPass.bind(this)} value={this.state.password}/>
                    </div>
                    <div className="loginLable">
                        <button className="Button buttonColor" type='button'
                                onClick={this.login.bind(this)}>登录
                        </button>
                        <button className="Button" type='button' onClick={this.resetForm.bind(this)}>重置</button>
                    </div>
                    <div className="loginButton"></div>
                </form>
            </div>
        </div>
    </CSSTransition>
</Fragment>
//需要实现的动画效果css
.fade-enter, .fade-appear {
    opacity: 0;
    margin: -250px 300px;
    transition: all 0.8s linear;
}

.fade-enter-active, .fade-appear-active {
    opacity: 0.5;
    margin: 0 300px;

}

.fade-enter-done {
    opacity: 1;
    margin: 0 300px;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值