基本上我希望用户能够点击并更改背景,并为特定div设置多个背景。
这适用于Google Chrome,但不适用于IE或Firefox。
HTML:
<div id="palette">
<div class="lightblue"></div>
<div class="gold"></div>
<div class="aqua"></div>
</div>
<div id="primary">
</div>
CSS:
#palette {
border: 2px solid white;
width: 25px;
}
#palette div {
height: 25px;
width: 25px;
}
.lightblue {
background: lightblue url(http://www.textureking.com/content/img/stock/big/DSC_4279.JPG);
}
.gold {
background: gold url(http://www.textureking.com/content/img/stock/big/DSC_4287.JPG);
}
.aqua {
background: aqua url(http://www.textureking.com/content/img/stock/big/DSC_4274.JPG);
}
JS:
$(document).ready(function() {
// attach onclick event to your palette colors
$('#palette div').on('click', function() {
// get background of selected palette color
var bg = $(this).css('background');
// change the background of the body
$('#primary').css({ 'background': bg });
});
});
它没有显示任何错误和其他javascripts,所以我不确定问题是什么。
如果它很容易修复,请留下答案,如果不是,我会这样尝试:http://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_style_backgroundimage
答案 0 :(得分:0)
根据CSS规范,获取速记的计算样式不应返回任何内容。您需要列出各个属性,如下所示。
也许CSS规范或Chrome将来会改变,但目前Firefox和IE的行为是正确的。
$(document).ready(function() {
// attach onclick event to your palette colors
$('#palette div').on('click', function() {
// get background of selected palette color
var backgrounds = $(this).css(['background-color','background-image', 'background-repeat', 'background-attachment', 'background-position']);
// change the background of the body
$('body').css(backgrounds);
});
});