javascript - React CSSTransition 没有正确应用类

标签 javascript css reactjs react-transition-group

我正在开发轮播应用程序,我必须使用 React Transition Group动画它。出于某种原因,我似乎无法正确应用这些类。

它混合了专有代码和开源代码,所以如果这个示例还不够,我很乐意扩展我的示例。

React render() 调用这个:

            {this.props.slides.map((slide, index) => (

          <CSSTransition
            key={this.index}
            in={this.appearHome}
            appear={true}
            timeout={600}
            classNames="carouselTransition"
          >

              <CarouselSlide
                key={index}
                index={index}
                activeIndex={this.state.activeIndex}
                slide={slide}
              />

          </CSSTransition>

        ))}

然后 css 看起来像这样:

    /* appear on page load */
.carouselTransition-appear {
  opacity: 0;
  z-index: 1;
}

.carouselTransition-appear.carouselTransition-appear-active {
  opacity: 1;
  transition: opacity 600ms linear;
}

.carouselTransition-enter {
  opacity: 0;
  z-index: 1;
}

.carouselTransition-enter.CarouselTransition-enter-active {
  opacity: 1;
  transition: opacity 300ms linear;
}

.carouselTransition-exit {
  opacity: 1;
}

.carouselTransition-exit.carouselTransition-exit-active {
  opacity: 0;
  transition: opacity 300ms linear;
}

.carouselTransition-exit-done {
  opacity: 0;
}

appear css 适用,但当我循环旋转木马时,我可以看到 enterexit 类从 div 中脱落,永远不会返回。我怀疑我对 key={index} 做错了什么,我读过它是一种反模式,但我不确定如何修复它。

同样,如果需要更多代码,请说出来!

最佳答案

使用它是一件棘手的事情,正如我从几乎所有我寻求帮助的地方都听到的那样。他们需要处理文档并构建一些更好的示例!无论如何,CSS 只是把正确的东西放在了错误的地方。具体来说,我在完成状态下尝试做的事情需要在事件状态下完成,而我在事件状态下尝试做的事情需要在进入状态下完成。

.carouselTransition-appear {
  opacity: 1;
}

.carouselTransition-appear.carouselTransition-appear-active {

}

.carouselTransition-enter {
  transform: translateX(110%);
}

.carouselTransition-enter.carouselTransition-enter-active {
  transition: transform 600ms ease-in-out;
  transform: translateX(0);
}

.carouselTransition-enter.carouselTransition-enter-done {
}

.carouselTransition-exit {
  transform: translateX(0);
}

.carouselTransition-exit.carouselTransition-exit-active {
  transition: transform 600ms ease-in-out;
  transform: translateX(-100%);
}

.carouselTransition-exit-done {
  left: -10000px;
  opacity: 0;
  height: 0px;
}

关于javascript - React CSSTransition 没有正确应用类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52882135/

相关文章:

css - 为什么过渡在比桌面小的屏幕上不起作用?

reactjs - React Hook 并获取 : How to update a table based on a user input from an API search

javascript - 我可以在脚本中完全禁用 'debugger' 吗?

javascript - 部署的 aurelia web 应用程序与在 gulp 上本地运行的应用程序有何不同

javascript - 如何设置 eslint 以仅在单文件 vue 组件中将 lodash 检测为全局?

javascript - 如何在页面中添加、删除或交换 jQuery 验证规则?

javascript - 将修饰符类应用于数组中的指定元素[React]

html - 悬停单个菜单项而不是整个菜单时出现下拉菜单

javascript - 警告 : React does not recognize the X prop on a DOM element

javascript - 递归数组问题