javascript - 如何在进入 dom 时为 React 组件设置动画?
问题描述
我在反应中有这样的代码
{this.state.popoverOpen && <Popover/>}
这很容易,但是当组件实际出现时,我希望它具有不透明度变化和动画效果......我一直在使用 react 一段时间,但这些情况总是给我留下混淆的空间......所以最好的和简单的解决方案?在这一点上显然没有应用课程......
解决方案
您可以使用 CSS 过渡。在将下面的代码添加到相关的 CSS 文件之后,尝试添加fade-in
到className
of的最外层 HTML 元素。Popover
.fade-in {
-webkit-animation: fadein 2s; /* Safari, Chrome and Opera > 12.1 */
-moz-animation: fadein 2s; /* Firefox < 16 */
-ms-animation: fadein 2s; /* Internet Explorer */
-o-animation: fadein 2s; /* Opera < 12.1 */
animation: fadein 2s;
}
@keyframes fadein {
from { opacity: 0; }
to { opacity: 1; }
}
/* Firefox < 16 */
@-moz-keyframes fadein {
from { opacity: 0; }
to { opacity: 1; }
}
/* Safari, Chrome and Opera > 12.1 */
@-webkit-keyframes fadein {
from { opacity: 0; }
to { opacity: 1; }
}
/* Internet Explorer */
@-ms-keyframes fadein {
from { opacity: 0; }
to { opacity: 1; }
}
/* Opera < 12.1 */
@-o-keyframes fadein {
from { opacity: 0; }
to { opacity: 1; }
}
Codepen 示例:https ://codepen.io/rodenmonte/pen/LYpOVpb
这是一个 StackOverflow 答案,显示了另一种(更好的 IMO)方法来执行此ReactJS:基于状态淡入 div 和淡出 div
推荐阅读
- reactjs - 如何解决自定义反应组件中 createContext 的打字稿错误
- java - 读取带有日期和非日期数字的非常大的 Excel 文件
- amazon-s3 - 更改 s3 存储桶目标 IP 地址后刷新 DNS
- python - 仅在第一次使用正则表达式时使用多个分隔符分隔
- html - 当我给 margin 0 0 0 auto 时,它应该转到最右边,但输出中没有应用样式
- python - 如何矢量化/优化依赖于先前行的计算
- docker - 一个 docker 容器,一个 samba 共享和权限问题
- javascript - Javascript Chrome 扩展从网站获取数据
- php - 我需要添加哪些索引?
- c++ - vkEnumerate* 的正确两次调用模式是什么?