【发布时间】:2018-03-22 13:07:09
【问题描述】:
基本上,我有一个带有一些动画的组件,但我只想在用户在某个断点调整页面大小时显示它们(如果宽度为
我设法做到了,但问题是,当我第一次加载页面时,动画会开始,而我不会显示它们。
希望我已经足够清楚了
编辑: 在“Test”组件的 render() 函数中有这个 div,其中 'main-content' 是 flex,前两个 div 在第一行,每个 50%宽度,第三个内部 div 位于第二行,宽度为 100%。
<div className="main-content">
<div className="content-box admin-setting-container">
</div>
<div className="content-box change-password-container">
</div>
<div className="content-box organization-setting-container">
</div>
</div>
在 .css 文件中我有以下代码:
@media only screen and (max-width: 1000px) {
.change-password-container, .organization-setting-container {
animation: fadeDown 0.5s ease-out;
}
}
@keyframes fadeDown {
0% {
opacity: 0.01;
transform: translateX(-25%);
}
100% {
opacity: 1;
transform: translateX(0);
}
}
这样,当窗口的宽度变为
我尝试过的一件事是让 div 'main-content' 带有一个特殊的类 'preload',然后在组件安装后删除该类。 CSS 类预加载会阻止动画。让我给你看代码。
/* IN REACT COMPONENT FILE */
componentDidMount() {
document.getElementsByClassName("preload")[0].classList.remove("preload");
}
... <div className="main-content preload"> ... </div> ...
/*IN CSS FILE */
.preload * {
animation-duration: 0s !important;
-webkit-animation-duration: 0s !important;
}
【问题讨论】:
-
您的动画基于调整大小事件?请向我们展示您的代码,以便我们查看问题所在。
-
您是缺少媒体上的右大括号还是因为副本而缺少右括号?
-
是因为抄袭,对不起! @MatanBobi 这实际上是所有代码(期望像类 Test extends ...).. 这里没有事件调整大小监听器,这一切都是由 CSS 媒体查询完成的.. 当屏幕尺寸小于 1000 时,加载 css对于每个容器更改
标签: javascript css reactjs css-animations