我的网站上有一个图像旋转器,但我希望图像以随机顺序出现,这样相同的图像始终不是第一个。我有旋转器工作,但我不知道如何随机化它。我的代码在JS Bin上:http://jsbin.com/dogimawuli/edit?html,output
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>Test</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js?ver=3.0.1"></script>
<script>
$(window).load(function() {
var InfiniteRotator =
{
init: function()
{
//initial fade-in time (in milliseconds)
var initialFadeIn = 1000;
//interval between items (in milliseconds)
var itemInterval = 4000;
//cross-fade time (in milliseconds)
var fadeTime = 50;
//count number of items
var numberOfItems = $('.rotating-item').length;
//set current item
var currentItem = 0;
//show first item
$('.rotating-item').eq(currentItem).fadeIn(initialFadeIn);
//loop through the items
var infiniteLoop = setInterval(function(){
$('.rotating-item').eq(currentItem).fadeOut(fadeTime);
if(currentItem == numberOfItems -1){
currentItem = 0;
}else{
currentItem++;
}
$('.rotating-item').eq(currentItem).fadeIn(fadeTime);
}, itemInterval);
}
};
InfiniteRotator.init();
});
</script>
<style>
#rotating-item-wrapper {position: relative;width: 468px;height: 60px;float: right;}
.rotating-item {display: none;position: absolute;top: 0;left: 0;}
</style>
</head>
<body>
<div id="rotating-item-wrapper">
<div style="width:400px;height:60px;background:red;"class="rotating-item">1</div>
<div style="width:400px;height:60px;background:green;"class="rotating-item">2</div>
<div style="width:400px;height:60px;background:blue;"class="rotating-item">3</div>
</div>
</body>
</html>
答案 0 :(得分:0)
试试这个:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>Test</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js?ver=3.0.1"></script>
<script>
$(window).load(function() {
debugger;
var InfiniteRotator =
{
init: function()
{
//initial fade-in time (in milliseconds)
var initialFadeIn = 1000;
//interval between items (in milliseconds)
var itemInterval = 4000;
//cross-fade time (in milliseconds)
var fadeTime = 50;
//count number of items
var numberOfItems = $('.rotating-item').length;
//set current item
var currentItem = Math.floor(Math.random() * numberOfItems)
//show first item
$('.rotating-item').eq(currentItem).fadeIn(initialFadeIn);
//loop through the items
var infiniteLoop = setInterval(function(){
$('.rotating-item').eq(currentItem).fadeOut(fadeTime);
nextItem = currentItem;
while(currentItem == nextItem) {
nextItem = Math.floor(Math.random() * numberOfItems);
}
currentItem = nextItem;
$('.rotating-item').eq(currentItem).fadeIn(fadeTime);
}, itemInterval);
}
};
InfiniteRotator.init();
});
</script>
<style>
#rotating-item-wrapper {position: relative;width: 468px;height: 60px;float: right;}
.rotating-item {display: none;position: absolute;top: 0;left: 0;}
</style>
</head>
<body>
<div id="rotating-item-wrapper">
<div style="width:400px;height:60px;background:red;"class="rotating-item">1</div>
<div style="width:400px;height:60px;background:green;"class="rotating-item">2</div>
<div style="width:400px;height:60px;background:blue;"class="rotating-item">3</div>
</div>
</body>
</html>
基本上你是在循环通过与当前图像不同的下一个随机数,这个缺点就是某些图像会被“饥饿”#34;直到随机数将选择该图像编号。