CSS动画在图像后面不断播放。未加载图像时,它将显示,但加载后图像将与动画重叠。我正在使用z-index来实现这一点,但它无法正常工作。
图像应隐藏使用z-index属性加载动画。
注意:我无法使用任何javascript解决方案来隐藏加载动画并在图像加载后显示它。
CSS / HTML / Demo
.leftprev {
overflow:auto;
position:absolute;
height:99%;
width:85%;
}
.loadingslide {
z-index: 50; /* Loading div's z-index */
}
.spinner.big {
display: block;
height: 40px;
}
.spinner {
bottom: 0;
display: none;
font-size: 10px;
height: 30px;
left: 0;
margin: auto;
position: absolute;
right: 0;
text-align: center;
top: 0;
width: 60px;
}
.spinner.big > div {
width: 6px;
}
.spinner > div {
animation: 1.2s ease-in-out 0s normal none infinite stretchdelay;
background-color: #333;
display: inline-block;
height: 100%;
width: 6px;
}
a {
color: #470a09;
text-decoration: none;
}
.slideshow .slidebro .leftprev #slideshowpic {
display: block;
margin: 0 auto;
width: auto;
z-index: 100; /* image's z-index */
}
<div class="leftprev">
<div class="loadingslide"> <!-- Loading Animation div (should be running in background of the image) -->
<div id="tracking" class="spinner big">
<div class="rect1"></div>
<div class="rect2"></div>
<div class="rect3"></div>
<div class="rect4"></div>
<div class="rect5"></div>
</div>
</div>
<a id="targetslide" target="_blank" title="Click to view fit to screen" href="">
<img src="http://www.placehold.it/500" alt="" id="slideshowpic" /> <!-- The image (should mask the loading animation div) -->
</a>
</div>
答案 0 :(得分:5)
您必须将位置添加到要应用 z-index 的元素。
来自CSS-trick:
CSS中的z-index属性控制垂直堆叠顺序 重叠的元素。就像在,哪一个看起来好像是在物理上 离你更近。 z-index仅影响具有位置的元素 static以外的值(默认值)。
答案 1 :(得分:3)
正确定位加载动画:
将加载div放在容器
将容器设置为position: relative
,以便加载div相对于它定位
要在加载图像时隐藏加载动画:
加载div为z-index: 1
图像被赋予position: relative
,因此它可以具有z-index属性
图片为z-index: 2
,将重叠
在此示例中,图像是容器宽度的一半,您可以看到它与加载div重叠的方式。
CSS / HTML / Demo
html, body {
height: 100%;
margin: 0;
}
.content {
height: 500px;
width: 500px;
background: #e91e63;
margin: 0 auto;
position: relative;
}
.content img {
z-index: 2;
position: relative;
width: 250px;
height: 500px;
}
.loading {
position: absolute;
margin: auto;
top: 0;
right: 0;
bottom: 0;
left: 0;
width: 100px;
height: 1em;
padding: 20px;
background: #FF0;
text-align: center;
font-weight: bold;
z-index: 1;
}
&#13;
<div class="content">
<div class="loading">I am loading</div>
<img src="http://www.placehold.it/250X500" />
</div>
&#13;