当前位置: 首页 > 面试题库 >

ReactJS:淡入div并根据状态淡出div

韦智刚
2023-03-14
问题内容

因此,我试图根据用户单击的按钮淡入和淡出一组输入。我尝试使用jQuery,但是div以相同的速度渐入渐出…

我正在使用es6类并做出反应。

我想要的是用户 按下按钮,然后输入淡入。 另一个按钮,输入fadeOut。我不介意使用jQuery,但我想了解如何通过React做到这一点。

renderInputs() {
  if (this.state.addType === "image") {
    return (
      <div className="addContainer">
        <input type="text" className="form-control" />
      </div>
    )
  } else {
    return (
     other inputs
    )
  }
}

render() {
  return (
    <CSSTransitionGroup
      transitionName="fadeInput"
      transitionEnterTimeout={500}
      transitionLeaveTimeout={300}>

      {this.renderInputs()} // this doesn't work but I want this content to be conditional.

    </CSSTransitionGroup>
  )
}

// SCSS
.fadeInput-enter {
  opacity: 0.01;
}

.fadeInput-enter.fadeInput-enter-active {
  opacity: 1;
  transition: opacity 500ms ease-in;
}

.fadeInput-leave {
  opacity: 1;
}

.fadeInput-leave.fadeInput-leave-active {
  opacity: 0.01;
  transition: opacity 300ms ease-in;
}

问题答案:

只需使用条件class和CSS。

有一个state像这样的变量visible

this.state = {
   visible:false
}

对于其他输入,请执行类似

<input className={this.state.visible?'fadeIn':'fadeOut'} />

所以,这取决于state.visible输入都会有classfadeInfadeOut

然后只需使用简单的CSS

.fadeOut{
     opacity:0;
     width:0;
     height:0;
     transition: width 0.5s 0.5s, height 0.5s 0.5s, opacity 0.5s;

}
.fadeIn{
     opacity:1;
     width:100px;
     height:100px;
     transition: width 0.5s, height 0.5s, opacity 0.5s 0.5s;

}

因此,每次state.visible更改都会发生class更改并transition发生。transitionCSS中的属性基本上是所有以逗号分隔的过渡。在过渡中,第一个参数是要修改的属性(例如heightwidth等等),第二个是transition- duration过渡所花费的时间,而第三个参数(可选)是指transition- delay在过渡开始后针对特定对象进行过渡的时间财产发生。因此,当this.state.visible成为类时true.fadeIn该类将附加到对象。分别transition具有height和的时间width为0.5s,因此将需要0.5s的时间增长,完成opacity转换后(延迟为0.5s)将触发并再花费0.5s的时间来获得opacity
1.隐藏是相反的。

请记住,让OnClick按钮上的事件处理的更改this.state.visible



 类似资料:
  • 主要内容:实例,jQuery Fading 方法,jQuery fadeIn() 方法,实例,jQuery fadeOut() 方法,实例,jQuery fadeToggle() 方法,实例,jQuery fadeTo() 方法,实例通过 jQuery,您可以实现元素的淡入淡出效果。 因为时间是宝贵的,我们提供快捷方便的学习方法。 在小牛知识库,你可以学习需要的知识。 实例 jQuery fadeIn() 演示 jQuery fadeIn() 方法。 jQuery fadeOut() 演示 jQ

  • 问题内容: ..当前它具有上/下滚动效果,但是我希望背景随着淡入淡出效果而改变,我应该在CSS中更改什么? 谢谢! 问题答案: 您无法在两个背景图片之间切换,因为浏览器无法知道您想要插入的内容。如您所知,您可以转换背景位置。如果您希望图像在鼠标悬停时淡入,我认为通过CSS过渡实现此效果的最佳方法是将图像放在包含元素上,然后在链接本身上为背景颜色设置动画:

  • 提前谢谢你。

  • 问题内容: 我有一个组件,单击时需要切换一个组件。这有效: 它使用条件显示或不显示组件。现在,我希望它逐渐消失。我尝试添加一个挂钩以过渡不透明度,但这不起作用。有没有简单的方法可以做到这一点? 问题答案: 使用CSS类切换+不透明度转换的示例:https : //jsfiddle.net/e7zwhcbt/2/ 这是有趣的CSS: 和render函数:

  • 问题内容: 我有以下几点: 这样几乎可以。问题是…效果不流畅。我的意思是,首先淡出内容A,然后保持空白,然后淡入内容B。 我想要的是减轻这种影响,以便当他确实快要消失时,他开始淡入,以便使效果平滑。 关于下面的代码如何实现? 非常感谢,MEM 问题答案: 试试这个: 因此,只有在检索到数据后才会产生效果,从而避免了等待数据响应的时间间隔。

  • 本文向大家介绍JavaScript淡入淡出渐变简单实例,包括了JavaScript淡入淡出渐变简单实例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了JavaScript淡入淡出渐变的实现方法。分享给大家供大家参考。具体如下: 这里介绍JavaScript淡入淡出的文字渐变例子,用js来控制div标签元素实现渐变显示,渐变隐藏,只要在那个标签里的内容,都可以淡入淡出,代码简单,便于修改完善