• react-transition-group v2 用法概述


    官方文档地址:https://reactcommunity.org/react-transition-group/

    在react-transition-group v2中,暴露了三个组件:

    其中最重要的是CSSTransition,TransitionGroup用于列表项的过渡动画,掌握了CSSTtransition后很快就能上手。

    CSSTransition组件中较为重要的api有:

    • in:bool,控制组件显示与隐藏,true显示,false隐藏
    • timeout:number,延迟,涉及到动画状态的持续时间。可传入一个对象,如{exit:300,enter:500}来分别设置进入和离开的延时
    • classNames:string,动画进行时给元素添加的类名。一般利用这个属性来设计动画。这里要特别注意是classNames而不是className
    • unmountOnExit:bool,为true时组件为隐藏状态时移除组件,为false时组件保持动画结束时的状态而不移除元素。一般要设成true。
    • appear:bool,为false时当CSSTransition控件加载完毕后不执行动画,为true时控件加载完毕则立即执行动画。demo:https://codepen.io/phsantiago/pen/WdNLmm

    动画进行时,以classNames='fade'为例,将依次为要执行动画的元素添加以下类名:

    fade-enterfade-enter-activefade-enter-donefade-exitfade-exit-activefade-exit-done

    我们也可以单独指定每一个类名:

     classNames={{
         enter: 'my-enter',
         enterActive: 'my-active-enter',
         enterDone: 'my-done-enter,
         exit: 'my-exit',
         exitActive: 'my-active-exit',
         exitDone: 'my-done-exit,
    }}

    这里来逐个讲解一下每个类名的添加时机:

    • enter:当元素进入时添加
    • enter-active:当元素进入到页面后添加。与enter的主要差别是enter-active是在元素已经添加到页面后才会添加enter-active,而enter在元素添加到页面时已经携带。
    • enter-done:动画执行完毕后添加。动画时长取决于timeout
    • exit:元素离开时添加。离开动画时长取决于timeout
    • exit-active:同exit
    • exit-done:离开动画完成后添加。(仅在unmountOnExit为false时有效)

    官方文档上还提到一个appear和appear-active,由于用处不大这里就不讲解了。一般的动画使用enter-active和enter-done就基本够用了。

    案例:

            <CSSTransition
              in={isOpen}
              timeout={3000}
              classNames={'mask'}
              unmountOnExit={true}
            >
                <div key={1} className={style.mask}/>  //所有要执行动画的元素必须携带key
            </CSSTransition>

    其他的用法及案例请参照官方文档。

     

  • 相关阅读:
    java 8新特性 匿名内部类的使用
    java 8新特性
    jmeter 性能测试
    idea 背景颜色设置
    SpringBoot yaml的配置及使用
    idea 类图显示
    SpringSecurity 获取认证信息 和 认证实现
    MySQL-慢查询日志
    微信小程序领取卡券
    ThinkPhp5-PHPExcel导出|导入 数据
  • 原文地址:https://www.cnblogs.com/axel10/p/9554382.html
Copyright © 2020-2023  润新知