考虑以下情况。我有两种类型的背景:1.Photoshop渐变,我使用CSS标记,如:
html{
background-image: url('imgs/gradient.png');
background-repeat: repeat-x;
background-color: #000000;
}
2.标记如下的背景模式
html{
background-image:url('paper.gif');
}
以下Jquery负责后台更改:
$(function() {
$('a').click(function() {
var currentLink = $(this);
var which = $(this).attr('id');
//Color scheme variables(image,color)
var image = '';
var color = '';
//gradient + color background
if (which == 'a1')
{image = "url(backgrounds/pat2.png)";
color = "#3a2c33";}
//pattern type background
else if(which == 'a2')
{image = "url(backgrounds/pat4.jpg)";
color = " ";}
if(color != " "){
$('html').css("background-image", image);
$('html').css("background-color", color);
}
else{
$('html').css("background", image);
}
return false;
});
});
如果选择图案类型背景,然后选择渐变/颜色类型背景,则无法初始化背景颜色。
答案 0 :(得分:2)
不要在JS中使用background
CSS值,而应该使用html
上的类并切换它。
html { background-image:url('paper.gif'); }
html.alt { background:#000 url('imgs/gradient.png') repeat-x; }
答案 1 :(得分:1)
我认为背景样式应位于body
而不是html
答案 2 :(得分:1)
也许您需要清除背景属性,因为它可能同时保留背景,背景图像和背景颜色?