使用 jQuery addClass 更改背景图像
Change background-image using jQuery addClass
是否可以使用 jQuery addClass
更改 css 背景?我正在使用以下代码,但它只停留在初始背景图像上。
.HTML
<div id="background">
</div>
jQuery
$(document).ready(function() {
for (var x = 10; x > 0; x--) {
$"#background").addClass(background2).delay(2000);
$("#background").removeClass("background2");
$("#background").addClass("background3").delay(2000);
$("#background").removeClass("background3").delay(2000);
};
});;
.CSS
#background {
width: 100%;
height: 100%;
font-size: 1.5em;
background-image: url(backgroundimage1.JPG);
background-position: left;
background-size: cover;
background-repeat: no-repeat;
background-attachment: scroll;
}
.background1 {
background-image: url(backgroundimage1.JPG);
}
.background2 {
background-image: url(backgroundimage2.JPG);
}
.background3 {
background-image: url(backgroundimage3.JPG);
}
你这里有两个问题。首先,您添加类并立即删除它们,因为delay
对css()
方法没有影响。要实现您的要求,您可以改用setInterval
。其次,您需要增加backgroundX
类的特异性,以便它们覆盖#background
元素上的默认样式。试试这个:
var count = 0;
var classes = [ 'background1', 'background2', 'background3' ];
function updateBackground() {
$('#background').removeClass(classes.join(' ')).addClass(classes[count % classes.length]);
count++;
}
setInterval(updateBackground, 2000);
#background.background1 {
background-image: url(backgroundimage1.JPG);
}
#background.background2 {
background-image: url(backgroundimage2.JPG);
}
#background.background3 {
height: 20%;
background-image: url(backgroundimage3.JPG);
}
工作示例
请注意,该示例使用的是background-color
但原理是相同的。
你需要编写正确的CSS规则。现在,他们的优先级不允许您查看更改。这样写
#background {
background-image: url("backgroundimage1.JPG");
}
#background.background1 {
background-image: url(backgroundimage1.JPG);
}
#background.background2 {
background-image: url(backgroundimage2.JPG);
}
#background.background3 {
height: 20%;
background-image: url(backgroundimage3.JPG);
}
正如其他人所说,这是因为 ID 总是比类具有更高的特异性。
虽然你可以按照其他答案的建议去做(#background.background1等),但我建议只对jQuery目标使用ID,并避免在CSS文件中使用ID,因为它与使用类相比没有任何优势,而且有很多缺点(没有可重用性,特异性问题......了解为什么您应该避免在 CSS 文件中使用 ID
相关文章:
- 可以在这里为背景图像设置滤镜吗
- 使用 js 将背景图像设置为 HTML
- 如何使用css动画/javascript使具有背景图像的元素出现
- 循环浏览多个身体背景图像
- 背景图像顶部的滚动图像不移动
- 在pdfmake中嵌入背景图像
- 修复选择菜单时的背景图像
- 使用css()设置背景图像;不起作用
- 鼠标悬停时如何居中放大背景图像
- 强制谷歌为javascript背景图像编制索引
- 淡入不带HTML的背景图像
- 具有淡入淡出效果的全背景图像
- 未加载随机背景图像
- 背景图像前显示Javascript警报
- javascript背景图像位置循环
- CSS动画背景图像的过渡越来越暗
- "Ken Burns效应”;悬停背景图像
- 通过ID JavaScript显示随机背景图像
- JavaScript背景图像
- 带有图像和背景图像的ClipTo