gpt4 book ai didi

javascript - 替换(淡化)主体背景而不影响嵌套元素

转载 作者:行者123 更新时间:2023-11-28 09:11:29 25 4
gpt4 key购买 nike

点击背景更改为图像或颜色。为此,首先我为 body 创建了两个类:

body.bg-color {
background-color:red;
}
body.bg-img {
background: url(../images/bg.jpg) no-repeat center 0 fixed;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
}

然后使用 .addClass.removeClass 我改变了背景。事情是,这种方法除了背景之外,还有内容都会消失。应该如何淡入/淡出仅背景?

$(document).ready(function(){

$('body').addClass('bg-color');
$('.element,#content1,#content2').hide();

$("#link1").click(function(){
$('#wrapper').hide();
$('body').removeClass('bg-color').fadeOut();
$('body').addClass('bg-img').fadeIn();
});

$("#link2").click(function(){
$('#wrapper').show();
$('body').removeClass('bg-img').fadeOut();
$('body').addClass('bg-color').fadeIn();
});
});

最佳答案

不要将这全部应用到 body 标签,而是使用固定定位的 <div>高度和宽度为 100%,并为其提供背景颜色,这样您就可以淡出该元素而不是整个 .

此外,您可以只切换一个类,而不是一次添加和删除两个类。

例如。

#bg{
position: fixed;
height: 100%;
width: 100%;
z-index: 1;
background: red;
}

#bg.bg-img {
background: url(../images/bg.jpg) no-repeat center 0 fixed;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
}

只需将以下内容放在开始的正文标签之后:

<div id="bg"></div>

这是您更新后的 JS:

$(document).ready(function(){

$('.element,#content1,#content2').hide();

$("#link1").click(function(){
$('#wrapper').hide();
$('#bg').fadeOut().addClass('bg-img').fadeIn();
});

$("#link2").click(function(){
$('#wrapper').show();
$('#bg').fadeOut().removeClass('bg-img').fadeIn();
});
});

关于javascript - 替换(淡化)主体背景而不影响嵌套元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26476165/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com