替换(淡入)主体背景而不影响嵌套元素
Replace(fade) body backgrounds without effecting nested elements
点击时背景更改为图像或颜色。为了做到这一点,首先我为身体做了两个类:
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;
}
然后使用CCD_ 1和CCD_。事情是,这种方法褪色,除了背景,还有内容。应该做些什么来只淡入/淡出背景?
$(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标记,而是使用高度和宽度为100%的固定位置<div>
,并为其提供背景色,这样您就可以淡出该元素而不是整个元素。
此外,您可以只切换一个类,而不是同时添加和删除两个类。
例如。
#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();
});
});
相关文章:
- 用嵌套函数和默认函数定义函数
- 如何在ReactJS JSX中执行嵌套的if-else语句
- 可以简化嵌套的延迟Q Promises解析吗
- 用于搜索的聚合物嵌套绑定
- 如何使用javascript获取嵌套对象中所有子对象的单个属性
- d3中堆栈函数和嵌套函数之间的差异
- 如何打印嵌套对象的所有值
- JavaScript 中的嵌套函数和 “this” 关键字
- 似乎无法影响嵌套 setTimeout 中的输入元素属性
- “嵌套模型表单”可以正确添加新字段,但 coffeescript 行为不会影响页面上现有字段等新字段
- Javascript-命名空间嵌套是否存在任何硬性限制(或性能影响)
- 替换(淡入)主体背景而不影响嵌套元素
- 缩小是如何工作的,它会影响有角度的嵌套对象吗
- 具有相同名称的嵌套settimeout,这样做会产生任何影响
- jQuery无限嵌套会影响性能吗?
- “闭包”是怎么做到的?影响jQuery中dom节点的嵌套遍历
- 悬停只影响嵌套集合中的单个元素
- 如何影响一个嵌套对象(React)中的一个键
- 嵌套ng重复,外部ng重复项影响内部ng重复逻辑
- 自定义样式不影响嵌套手风琴如何修复