CSSTransition transition-enter-active 事件未按预期工作

Posted

技术标签:

【中文标题】CSSTransition transition-enter-active 事件未按预期工作【英文标题】:CSSTransition transition-enter-active event not working as expected 【发布时间】:2020-09-05 06:49:17 【问题描述】:

我是 JS、React 和 CSSTransition 的新手,如果有任何明显的地方请见谅。我正在尝试为 div 输入一些基本的进入/退出动画(理想情况下从右侧滑入并从左侧滑出,但现在只是尝试使用不透明度来保持简单)。

虽然我可以让页面呈现,但我无法让以下 CSS 事件工作: *-过渡-输入, *-transition-enter-active, *-过渡-退出, *-transition-exit-active

但是,在玩弄它的同时,我设法让一些功能使用这些事件工作: *-输入-完成, *-退出-完成

但是,我无法让它用于滑入/滑出过渡。

这让我很困惑,所以希望你能指出我正确的方向。几个代码sn-ps: 应用.js

  switch = () => 
  this.setState(prevState => (
    slide: !prevState.slide
  ));

  render() 
    return (
    <button type="button" onClick=this.switch> Click </button>

    <CSSTransition
      in=this.state.slide
      classNames='slide'
    >
       <div>
          <p>Text here</p>
       </div>
    </CSSTransition>
)

还有我的 App.css

.slide-transition-enter
opacity: 0;


.slide-transition-enter-active
  opacity: 1;
  transition: opacity 200ms;


.slide-transition-exit
  opacity: 1;


.slide-transition-exit-active
  opacity: 0;
  transition: opacity 200ms;

【问题讨论】:

过渡应该始终在元素上,不仅在动画时 您能再解释一下吗?我应该做出什么改变?谢谢! 类似的东西.mainclass transition: opacity 200ms; .slide-transition-enter opacity: 0; .slide-transition-enter-active opacity: 1; .slide-transition-exit opacity: 1; .slide-transition-exit-active opacity: 0; 你可以在这里阅读更多信息w3schools.com/css/css3_transitions.asp 我刚刚尝试过,但它似乎仍然没有任何区别?也许我是误会了?我已经查看了该链接,但仍然无法理解该问题。它也没有谈论我认为是这里的问题的 CSSTransition 方法。 是的,但还要在静态类上添加一个过渡,该类始终保留在元素类列表中,我将该类称为 mainClass 用于示例 【参考方案1】:

您在 CSS 中使用了错误的类名,我已修复 此外,您应该增加代码中的超时时间以使其更流畅

.test
  transition: opacity 1000ms;


/* This fires as soon as the element enters the DOM */
.slide-enter
opacity: 0;


/* This is where we can add the transition*/
.slide-enter-active
  opacity: 1;



/* This fires as soon as the this.state.showList is false */
.slide-exit
  opacity: 1;

/* fires as element leaves the DOM*/
.slide-exit-active
  opacity: 0;


【讨论】:

有时是最简单的事情!我显然无法阅读样板。感谢您的帮助!

以上是关于CSSTransition transition-enter-active 事件未按预期工作的主要内容,如果未能解决你的问题,请参考以下文章

CSSTransition过渡输入活动事件未按预期工作

TransitionGroup 和 CssTransition:未应用退出过渡

react-transition-group动画以及数字滚动效果实现

前端过渡(transition)

transition

过渡属性