使用z-index重叠带有图像的div

时间:2014-10-04 18:39:53

标签: html css css3

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>    

2 个答案:

答案 0 :(得分:5)

您必须将位置添加到要应用 z-index 的元素。

来自CSS-trick:

  

CSS中的z-index属性控制垂直堆叠顺序   重叠的元素。就像在,哪一个看起来好像是在物理上   离你更近。 z-index仅影响具有位置的元素   static以外的值(默认值)。

http://css-tricks.com/almanac/properties/z/z-index/

答案 1 :(得分:3)

正确定位加载动画:

  • 将加载div放在容器

  • 将容器设置为position: relative,以便加载div相对于它定位

要在加载图像时隐藏加载动画:

  • 加载div为z-index: 1

  • 图像被赋予position: relative,因此它可以具有z-index属性

  • 图片为z-index: 2,将重叠

在此示例中,图像是容器宽度的一半,您可以看到它与加载div重叠的方式。

CSS / HTML / Demo

&#13;
&#13;
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;
&#13;
&#13;