javascript - 从我的 Div background-image 属性中循环 3 个图像

标签 javascript jquery html css

我有一个循环图像的代码,但基于 Img 源,但如何改进它以使其适用于 div 的“背景图像”属性?

HTML

<div id="section2"></div>   

CSS

#section2 {
background-image: 'url(..images/banner1.jpg');
} 

JavaScript

<script type = "text/javascript">
(function() {     
var i = 1;
var pics = [ "images/banner1.jpg", "images/banner2.jpg", "images/banner3.jpg" ];
var el = document.getElementById('section2');  
function toggle() {
    el.src = pics[i];           
    i = (i + 1) % pics.length;  
}
setInterval(toggle, 3000);
})();             
  </script>

提前致谢:)

最佳答案

一种方法是使用 CSS 类而不是源代码。

JS:

<script type = "text/javascript">
(function() {     
var i = 1;
var classes = [ "bgd-1", "bgd-2", "bgd-3" ]; // adjusted
var el = document.getElementById('section2');  
function toggle() {
    el.className = classes[i]; // adjusted           
    i = (i + 1) % classes.length; // adjusted 
}
setInterval(toggle, 3000);
})();             
</script>

CSS:

#section2.bgd-1 {
    background-image: url('..images/banner1.jpg');
} 

#section2.bgd-2 {
    background-image: url('..images/banner2.jpg');
} 

#section2.bgd-3 {
    background-image: url('..images/banner3.jpg');
} 

注意:

使用 el.className += ' ' + classes[i]; 附加一个类名而不是替换所有元素类。

关于javascript - 从我的 Div background-image 属性中循环 3 个图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35524615/

相关文章:

javascript - 如何摆脱浏览器的 native 工具提示?

javascript - 编写此代码以使表 td :button I created strikes with a line my listed items? 的正确方法是什么

javascript - 如何在 aws 中重新部署我的 github 项目以查看更改?

jquery - Backbone fetch() 总是返回相同的模型

javascript - 在 jquery 中替代 .change?

html - CSS:获取居中的流体图像背景

javascript - 如何以编程方式触发 Focusout 事件

javascript - 绑定(bind)父元素与直接绑定(bind)元素有优缺点吗?

javascript - 使用 HTML5 Canvas 或 Javascript 的 Pushlet

javascript - 从本地存储中删除多行数据