淡出div背景会影响位于背景图上的其他div。

16 浏览
0 Comments

淡出div背景会影响位于背景图上的其他div。

我有一个填充整个屏幕的背景图片的主要div。我希望这张图片能够不断变化,这个功能已经正常工作。但是我遇到的问题是位于背景div上方的div也被淡出了,所以整个页面变成了空白。请问如何只淡出背景而保留其他内容在屏幕上呢?非常感谢对此问题的任何建议!\n





无最低合同,一切在线支付
如何使用

\n

#hpbg-image {
    position: relative;
    height: 100%;
    width: 100%;
    background: url(images/image1.jpg);
    background-size: cover;
    background-repeat: no-repeat;
}
#menu {
    padding-top:20px;
    padding-right:170px;
    position: absolute;
    right:0;
    color: #ffffff;
    font-family: 'Verdana',serif;
}
#login {
    padding-top:8px;
    padding-right:50px;
    position: absolute;
    right:0;
}
#holder1 {
    margin: 0;
    position: absolute;
    top: 40%;
    left: 50%;
    margin-right: -50%;
    transform: translate(-50%, -50%);
    text-align: center;
    width:838px;
}
#searchbox {
    height:78px;
    width:458px;
    background: url(images/searchbg.png);
    background-repeat: no-repeat;
    padding-top: 22px;
    padding-bottom: 18px;
    padding-left:40px;
    text-align: center;
    margin: 0 auto;
}

\n

$(document).ready(function() {
    var images = [];
    images[0] = "images/image1.jpg";
    images[1] = "images/image2.jpg";
    images[2] = "images/image3.jpg";
    var i = 0;
    setInterval(fadeDivs, 2000);
    function fadeDivs() {
        //5秒后从id = 0开始
        $('#hpbg-image').css("background-image", "url("+images[i]+")").fadeOut(500, function() {
            $(this).css("background-image", "url("+images[i]+")").fadeIn(500);
        });
        i++;
        if (i == 3) 
            i = 0; //从头开始重复
    }
});

0
0 Comments

问题的出现原因是:当一个div的背景图像渐变消失时,它会影响到位于背景图像之上的其他div。

解决方法如下:

在CSS中添加以下代码:

#hpbg-image {
  ...
  transition: background 1s linear;// 将此行代码添加到您的CSS中。
  ...
}

在JavaScript中添加以下代码:

function fadeDivs() {
    // 5秒后从id=0开始
    $('#hpbg-image').css("background-image", "url("+images[i]+")");
    i++;
    if (i==3) i=0; // 从头开始重复
}

您可以在这里查看结果。

0
0 Comments

问题的原因是在CSS中设置了一个div的背景渐变效果,并且该div上面还有其他的div元素。然而,当设置了背景渐变效果的div的不透明度逐渐减小时,它的背景颜色也会逐渐变淡,从而影响到其他位于其上方的div元素。

解决方法是使用CSS的':before'伪元素。通过在设置背景渐变效果的div上添加一个':before'伪元素,我们可以单独控制该伪元素的背景颜色和不透明度,而不会影响到其他div元素。具体代码如下:

.container {
  position: relative;
  width: 100%;
  height: 100%;
}
.background {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-image: linear-gradient(to bottom, rgba(0,0,0,1), rgba(0,0,0,0));
}
.background:before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-image: url('your-image.jpg');
  opacity: 0.5;
}
.overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

这样,我们可以单独控制':before'伪元素的背景颜色和不透明度,而不会影响到其他div元素。同时,我们还可以通过调整':before'伪元素的z-index属性来确保其位于其他div元素的下方,从而实现背景渐变效果的div不会遮挡其他内容。

希望这个解决方法对你有所帮助!

0
0 Comments

No minimum contract, pay for everything online

How it works

现在在两个根div上使用position:absolute

#hpbg-image{ position:absolute; }

#stuff{ position:absolute; }

#stuff不需要绝对定位,只有#hpbg-image需要。

0