Javascript 循环上课
我已经得到了下面的html,我希望通过它自动循环。它目前是通过onclick手动完成的。但是我怎样才能让它循环呢?它基本上只是更改包装器div上的类名,如下所示:Javascript 循环上课,javascript,jquery,css,cycle,Javascript,Jquery,Css,Cycle,我已经得到了下面的html,我希望通过它自动循环。它目前是通过onclick手动完成的。但是我怎样才能让它循环呢?它基本上只是更改包装器div上的类名,如下所示: <body> <div id="client-relations-bg" class="background_tab1"> ...content... </div> </body> …内容。。。 我在这里有班级形象信息,在头部: <style
<body>
<div id="client-relations-bg" class="background_tab1">
...content...
</div>
</body>
…内容。。。
我在这里有班级形象信息,在头部:
<style type="text/css">
#client-relations-bg.background_tab1{background: url('/media/2/background-image-1.png') no-repeat center top;}
#client-relations-bg.background_tab2{background: url('/media/32/background-image-6.jpg') no-repeat center top;}
#client-relations-bg.background_tab3{background: url('/media/17/background-image-3.jpg') no-repeat center top;}
#client-relations-bg.background_tab4{background: url('/media/12/background-image-2.png') no-repeat center top;}
#client-relations-bg.background_tab5{background: url('/media/22/background-image-4.jpg') no-repeat center top;}
#client-relations-bg.background_tab6{background: url('/media/37/background-image-7.jpg') no-repeat center top;}
#client-relations-bg.background_tab7{background: url('/media/2900/Header_image.jpg') no-repeat center top;}
</style>
#客户关系bg.background_tab1{background:url('/media/2/background-image-1.png')无重复中心顶部;}
#客户关系bg.background_tab2{background:url('/media/32/background-image-6.jpg')无重复中心顶部;}
#客户关系bg.background_tab3{background:url('/media/17/background-image-3.jpg')无重复中心顶部;}
#客户关系bg.background_tab4{background:url('/media/12/background-image-2.png')无重复中心顶部;}
#客户关系bg.background_tab5{background:url('/media/22/background-image-4.jpg')无重复中心顶部;}
#客户关系bg.background_tab6{background:url('/media/37/background-image-7.jpg')无重复中心顶部;}
#客户关系bg.background_tab7{background:url('/media/2900/Header_image.jpg')无重复中心顶部;}
所以我需要这个:
class=“background\u tab1”
循环通过tab1
到tab7
jQuery有非常好的类操作方法。您只需解析当前类以查找当前的数字,或者将其存储在全局变量中,然后在设置下一个变量时执行i++%7
jQuery有非常好的类操作方法。您只需解析当前类以查找当前的数字,或者将其存储在全局变量中,然后在设置下一个变量时执行i++%7
如果您事先知道自己的类名,则可以:
var
classList = ['background_tab1', 'background_tab2', 'background_tab3'],
$el = $('#client-relations-bg');
(function next() {
setTimeout(function () {
classList.push(classList.shift());
$el.removeClass().addClass(classList[0]);
next();
}, 2000);
}());
如果您事先知道自己的类名,则可以:
var
classList = ['background_tab1', 'background_tab2', 'background_tab3'],
$el = $('#client-relations-bg');
(function next() {
setTimeout(function () {
classList.push(classList.shift());
$el.removeClass().addClass(classList[0]);
next();
}, 2000);
}());
实际上不需要使用jQuery
(function(){
var interval = 1000;
var currentBackgroundId = 1;
window.setInterval(function(){
currentBackgroundId++;
if (currentBackgroundId == 8) currentBackgroundId = 1;
var element = document.getElementById('client-relations-bg');
element.className = 'background_tab' + currentBackgroundId;
}, interval);
})();
实际上,您不需要使用jQuery
(function(){
var interval = 1000;
var currentBackgroundId = 1;
window.setInterval(function(){
currentBackgroundId++;
if (currentBackgroundId == 8) currentBackgroundId = 1;
var element = document.getElementById('client-relations-bg');
element.className = 'background_tab' + currentBackgroundId;
}, interval);
})();
以下是一种方法:
var classes = [
"background_tab1",
"background_tab2",
"background_tab3",
"background_tab4",
"background_tab5",
"background_tab6",
"background_tab7"
];
setInterval(function() {
var $div = $("#client-relations-bg");
$.each(classes, function(i, c) {
if ($div.hasClass(c)) {
var j = (i + 1) % classes.length;
$div.removeClass(c).addClass(classes[j]).text(classes[j]);
return false;
}
});
}, 2000);
}));
这里有一种方法:
var classes = [
"background_tab1",
"background_tab2",
"background_tab3",
"background_tab4",
"background_tab5",
"background_tab6",
"background_tab7"
];
setInterval(function() {
var $div = $("#client-relations-bg");
$.each(classes, function(i, c) {
if ($div.hasClass(c)) {
var j = (i + 1) % classes.length;
$div.removeClass(c).addClass(classes[j]).text(classes[j]);
return false;
}
});
}, 2000);
}));
@CR41G14:光靠这一点无助于解决问题。当然,在没有jQuery的情况下也可以做到这一点,但可能不是那么容易。@Constantinius我基本上是在为reasearch@CR41G14当前位置仅此一点无助于解决问题。同样,在没有jQuery的情况下也可以做到这一点,但可能不是那么容易。@Constantinius我基本上是在为Reasearch设置一个平台。这很好,谢谢,你如何添加淡入淡出呢。但是你把它放在哪里?在next().fadeIn(500)之后?你想淡入背景图像吗?恐怕,如果没有额外的标记和对上面代码的大量更改,淡入背景图像是不可能的;这不是上面代码的问题,而是背景图像褪色的问题,因为没有css属性可使用。一个将不得不使用多个元素堆叠在另一个元素和更多的东西之上,这可能会很快变得混乱。一个可用的假象是淡入过渡色(例如白色/黑色)更改图像并淡出颜色。但这仍然需要在标记中至少添加一个元素。好的,谢谢,我刚刚尝试了fadeIn淡出,它也淡出div中的所有内容,而不仅仅是图像。这很好,谢谢,你如何添加淡出。但是你把它放在哪里?在next().fadeIn(500)之后?你想淡入背景图像吗?恐怕,如果没有额外的标记和对上面代码的大量更改,淡入背景图像是不可能的;这不是上面代码的问题,而是背景图像褪色的问题,因为没有css属性可使用。一个将不得不使用多个元素堆叠在另一个元素和更多的东西之上,这可能会很快变得混乱。一个可用的假象是淡入过渡色(例如白色/黑色)更改图像并淡出颜色。但是这仍然需要在标记中至少添加一个元素。好的,谢谢,我刚刚尝试了fadeIn淡出,它也淡出了div中的所有内容,不仅仅是图像。这很好,淡出会在哪里呢?在.text(j).fade(500)?你能解释一下什么是淡入淡出的吗?这很好用哦,淡入淡出会是什么样子?在.text(j).fade(500)?你能解释一下什么是淡入淡出的吗?