0

我有一个网页,我在其中使用 css 交叉淡入淡出动画在两个背景图像之间淡入淡出。现在,我需要在两个图像上方添加相同的内容(徽标和按钮)。但是,此内容仅对第一张图像可见,而对第二张图像不可见。这是我的代码:

索引.html

<div id="bgimg">
    <div class="bgimg-container">
      <div id="hero">
        <div class="bgimg-container">

            My content here


        </div>
      </div>
    </div>
  </div>

样式.css

    #bgimg{
      display: table;
      background: url(../img/2.jpg);
      width:100%;
      height:100vh;
      background-position: top center;
      background-size: cover;
      background-repeat: no-repeat;
    }

    #hero {
    display: table;
    width: 100%;
    height: 100vh;
    background: url(../img/1.jpg);
    background-position: top center;
    background-size: cover;
    background-repeat: no-repeat;


    animation-name: cf3FadeInOut;
    animation-timing-function: ease-in-out;
    animation-iteration-count: infinite;
    animation-duration: 7s;
    animation-direction: alternate;
    }

    @keyframes cf3FadeInOut {
    0% {opacity:1;}
    45% {opacity:1;}
    55% {opacity:0;}
    100% {opacity:0;}
    }

    @media (min-width: 1024px) {
      #hero, #bgimg {
        background-attachment: fixed;
      }
    }

    #hero .hero-logo {
      margin: 20px;
    }

    #hero .hero-logo img {
      max-width: 100%;
    }


    #hero .hero-container {
      background: rgba(0, 0, 0, 0.8);
      display: table-cell;
      margin: 0;
      padding: 0;
      text-align: center;
      vertical-align: middle;
    }
    #bgimg .bgimg-container {
      background: rgba(0, 0, 0, 0.8);
      display: table-cell;
      margin: 0;
      padding: 0;
      text-align: center;
      vertical-align: middle;
    }

我已经筋疲力尽地试图弄清楚。新来的,请帮忙。

4

2 回答 2

-1

干得好:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        .img1 {
            background: #e12;
            position: absolute;
            top: 0;
            left: 0;

        }
        .img2:hover {
            opacity: 0;
            transition: .5s;
        }
        .img2 {
            background: #312;
            position: absolute;
            top: 0;
            left: 0;
            transition: .5s;
        }
        .img1, .img2 { /* other - for demo */
            color: white;
            width: 100px;
            height: 100px;
            width: 100px;
            height: 100px;
        }
    </style>
</head>
<body>
    <div class="img1"></div>
    <div class="img2">Hello World</div>
</body>
</html>

将背景更改为图像,或者如果您想使用 img 标签,请将每个 img 标签放入 div

于 2019-01-13T13:42:55.667 回答
-1

这里有一个工作示例,也许可以使用它来修改您的代码;

@keyframes cf3FadeInOut {
  0% {
    opacity: 1;
  }
  45% {
    opacity: 1;
  }
  55% {
    opacity: 0;
  }
  100% {
    opacity: 0;
  }
}

.img-container,
.bg-img-1,
.bg-img-2,
.content {
  height: 100vh;
  width: 100vw;
}

.img-container {
  position: relative;
}

.bg-img-1 {
  background-image: url('https://images.pexels.com/photos/1509428/pexels-photo-1509428.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=650&w=940');
  background-size: cover;
  position: absolute;
}

.bg-img-2 {
  background-image: url('https://images.pexels.com/photos/886465/pexels-photo-886465.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=650&w=940');
  position: absolute;
    background-size: cover;
  animation-name: cf3FadeInOut;
  animation-timing-function: ease-in-out;
  animation-iteration-count: infinite;
  animation-duration: 3s;
  animation-direction: alternate;
}

.content {
  background-color: rgba(0,0,0,0.5);
  color: #fff;
  position: absolute;
  display: flex;
  justify-content: center;
  align-items: center;
}
<div class="img-container">
  <div class="bg-img-1"></div>
  <div class="bg-img-2"></div>
  <div class="content">
    <div>
      hello <button>world</button>
    </div>
  </div>
<div>

于 2019-01-13T14:01:48.757 回答