所以...我从数组中得到一个图像,设置时间间隔的问题,以便轮流显示图像
$(function() {
var length = $('.fadein img').length; //get the number of images
var arrayimage = [];
for (i=0; i<length; i++){ // fill the array
arrayimage.push($(".fadein img:eq("+ i +")").attr("src"));
}
var lengtharray = arrayimage.length;
setTimeout(function run() {
for (i=0; i<lengtharray; i++){ //get images by turn
var cft = arrayimage[i];
var imageurl = cft;
$("html").css({
'background': '#000000 url("' +imageurl + '") no-repeat top left fixed',
'background-size' : 'cover',
'width':'100%',
'height':'100%',
'position':'avsolute'
});
setTimeout(cft, 5000);
alert("set");
}
},5000);
});
如何设置间隔? 如有必要,这是HTML代码:)
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link href="style.css" rel="stylesheet" type="text/css">
<script src="js/jquery/jquery2.0.3.js"></script>
<script src="js/jquery/slideshow.js"></script>
</head>
<body>
<div class="fadein">
<img src="images/backgrounds/stones.jpg"/>
<img src="images/backgrounds/pier.jpg"/>
<img src="images/backgrounds/sea-mist.jpg"/>
<img src="images/backgrounds/mojave.jpg"/>
<img src="images/backgrounds/flowing-rock.jpg"/>
</div>
</body>
</html>
答案 0 :(得分:0)
听起来好像是setInterval(function, milliseconds)
,而不是setTimeout
。
答案 1 :(得分:0)
你有
setTimeout(cft, 5000);
'cft'是一个字符串。你应该传递一个函数setTimeout。您必须根据重复使用的可重用函数来考虑setTimeout。您在第一个外部setTimeout中执行该函数,然后该函数在后续的setTimeouts内部调用它自己。如果你希望它立即开始,第一个电话将直接发送到你的函数而不是setTimeout。
您使用的幻灯片插件是什么?你可以在它的文档中找到你想要的一些答案。
这是我正在思考的一个例子:
$(function() {
//set up
$('.fadein img').hide().eq(0).addClass('nextup');
rotate = function(){
var imageurl = $('.fadein img.nextup').attr('src')
//next
$('.fadein img.nextup').removeClass('nextup').next('img').addClass('nextup');
if($('.fadein img.nextup').length == 0){
//back to first
$('.fadein img').hide().eq(0).addClass('nextup');
}
$("html").css({
'background': '#000000 url("' +imageurl + '") no-repeat top left fixed',
'background-size' : 'cover',
'width':'100%',
'height':'100%',
'position':'absolute'
});
setTimeout(rotate, 5000);
};
rotate();
});