在我的网站上,我有一个YouTube风格的进度条(固定在屏幕顶部的细线,从左到右加载)以及所有内容的标题。这两个元素都有position: fixed
。
页面加载完毕后,进度条会显示opacity: 0
。进度条有transition: opacity 0.4s
,但没有过渡,只是出现和消失。这是我的问题。
以下是此问题的示例:https://codepen.io/anon/pen/ZJNaqJ
理想情况下,任何解决方案都涉及在.loader-outer
或.loader
...而不是#loader-wrapper
内更改CSS。这是因为我引入了一个外部进度条组件(我使用了React),如果我不必这样做,我就不会重新实现它。
谢谢!
答案 0 :(得分:0)
您可以使用css3动画代替。如果要在特定事件处触发动画,请添加样式类名称并在其中设置动画属性。然后删除样式类名称以停止动画。
.wrapper {
width: 800px;
height: 400px;
background-color: lightblue;
}
.header {
position: fixed;
top: 0;
left: 0;
right: 0;
background-color: palevioletred;
z-index: 1;
height: 50px;
}
.loader-outer {
}
.loader-wrapper {
}
.loader {
background-color: lightpink;
height: 10px;
position: fixed;
top: 0;
left: 0;
right: 0;
z-index: 100;
animation-name:opacityAnimation;
animation-iteration-count: infinite;
animation-duration:2s;
}
@keyframes opacityAnimation {
0% {opacity:0;}
50% {opacity:1;}
100% {opacity:0;}
}
.content {
background-color: lightgreen;
}
<div class="wrapper">
<div>
<div class="header">
header stuff here
</div>
<div class="content">
body!
</div>
</div>
<div class="loader-outer">
<div id="loader-wrapper">
<div class="loader"></div>
</div>
</div>
</div>