【问题标题】:react transition group appear transitions not working properly反应过渡组出现过渡无法正常工作
【发布时间】:2019-05-16 21:19:55
【问题描述】:

我正在使用react transition group 在渲染组件时处理动画 CSSTransitions。我想要一个组件的简单淡入。

转出似乎工作正常,但转入却没有。

如果我在onEnter 属性上放置一个调试器,我可以看到转换实际上“应该”按预期工作。触发进入活动状态,元素从 0.1 不透明度开始,如果我恢复调试器,就会发生转换。

但是没有调试器,当组件渲染时,即使 enter-active 状态被添加到组件中,它也只是立即可见 - 不会发生不透明度淡入。

这是我的代码:

<TransitionGroup component={null}>
{mobileSelectorsActive && 
<CSSTransition 
    classNames="anim_mobile_selectors" 
    timeout={5000}
    //appear={true}
    //mountOnEnter={true}
    onEnter={()=>{
        //debugger;
    }}
>
<div>...</div>
</CSSTransition>
}
</TransitionGroup>

和 CSS:

.anim_mobile_selectors {
    &-enter {
        opacity: 0.1;
        transition: opacity 5000ms linear;
    }
    &-enter-active, &-enter-done {
        opacity:1; 
    }
    &-exit {
        opacity:1;
    }
    &-exit-active {
        opacity: 0.1;
        transition: opacity 5000ms linear;
    }
}

【问题讨论】:

    标签: javascript reactjs animation css-animations react-transition-group


    【解决方案1】:

    这有点小技巧,但如果它对其他人有帮助,我通过缩短过渡并将动画置于“结束”状态来解决这个问题:

    //JSX
    <CSSTransition 
        classNames="anim_mobile_selectors" 
        timeout={{
            enter: 100,
            exit: 500,
        }}
    ><div>...</div>
    </CSSTransition>
    
    
    
    //CSS
        .anim_mobile_selectors {
            &-enter {
                opacity: 0.01;
            }
            &-enter-active {
                opacity: 0.01;
            }
             &-enter-done {
                opacity:1; 
                transition: opacity 500ms linear;
            }
            &-exit {
                opacity:1;
            }
            &-exit-active {
                opacity: 0.01;
                transition: opacity 500ms linear;
            }
        }
    

    【讨论】:

      猜你喜欢
      • 2020-07-25
      • 1970-01-01
      • 2014-11-29
      • 2016-02-05
      • 1970-01-01
      • 2020-10-29
      • 2017-01-24
      • 2020-05-05
      • 1970-01-01
      相关资源
      最近更新 更多