【问题标题】:React CSSTransition Help. Animation resetting. and not setting the enter class right away反应 CSSTransition 帮助。动画重置。而不是立即设置输入类
【发布时间】:2018-08-04 03:51:10
【问题描述】:

我的反应代码

    import React from 'react'
import ReactDOM from 'react-dom'
import { CSSTransition } from 'react-transition-group'

import './styles.css';

const Fade = ({ children, ...props }) => (
  <CSSTransition
    {...props}
    timeout={600}
    classNames="slide-filter"
  >
    {children}
  </CSSTransition>
);

class FadeInAndOut extends React.Component {
    state = {
      show: false
    }

  render() {
    return (
      <div>
        <button onClick={() => this.setState((prevState) => {
          return { show: !prevState.show }
        })}>Toggle</button>
        <hr/>
      <Fade in={this.state.show}>
        <div className='greeting'>Hello world</div>
      </Fade>
      </div>
    )
  }
}

我的 CSS 类

.slide-filter-enter {
  transform: translateX(50%);
  opacity: 0;
  transition: all 0.6s ease-in;
  color:blue;
}
.slide-filter-enter-active {
  transform: translateX(0);
  color:red;
  opacity: 1;
}
.slide-filter-exit {
  transform: translateY(0);
  opacity: 1;
  color:red;
}
.slide-filter-exit-active {
  color:blue;
  transform: translateX(50%);
  transition: all 0.6s ease-in;
}

好的,我不明白为什么这不起作用。它只是在动画后重置为原始状态。

还有为什么“enter”或“enter-active”类在第一次呈现在屏幕上时没有应用?

【问题讨论】:

标签: css reactjs animation


【解决方案1】:

所以你想让“Fade”组件的位置停留在动画的结束位置?如果这不是您正在寻找的行为,请原谅我,但请尝试删除第 10 行的 timeout={1000} 属性。

【讨论】:

  • 谢谢,但如果我这样做,我会收到此错误:道具类型失败:道具timeoutCSSTransition 中标记为必需,但其值为undefined
猜你喜欢
  • 2019-01-14
  • 2020-02-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多