我有5張圖片(pic-1.jpg,pic-2.jpg ...等)。這5張圖片加載到數組中並與文字相關聯(caption)我喜歡存檔(使用jquery或javascript)是:每次加載網站時,隨機獲取訂單,下一張圖像後獲取下一張圖像,而不顯示直到結束時顯示的圖像。簡單的顯示隨機顯示
我也想用隨機生成的第一顯示,並推來獲得另一個
你有更好的anothe功能...隨機不重複,直到顯示所有的曾經...
是否清楚?...我會解釋更多,如果需要!
我有5張圖片(pic-1.jpg,pic-2.jpg ...等)。這5張圖片加載到數組中並與文字相關聯(caption)我喜歡存檔(使用jquery或javascript)是:每次加載網站時,隨機獲取訂單,下一張圖像後獲取下一張圖像,而不顯示直到結束時顯示的圖像。簡單的顯示隨機顯示
我也想用隨機生成的第一顯示,並推來獲得另一個
你有更好的anothe功能...隨機不重複,直到顯示所有的曾經...
是否清楚?...我會解釋更多,如果需要!
通過搜索 '的JavaScript隨機陣列' 我發現了一個網頁約fisherYates陣列洗牌算法: http://sedition.com/perl/javascript-fy.html
這裏的相關代碼:
function fisherYates (myArray) {
var i = myArray.length;
if (i == 0) return false;
while (--i) {
var j = Math.floor(Math.random() * (i + 1));
var tempi = myArray[i];
var tempj = myArray[j];
myArray[i] = tempj;
myArray[j] = tempi;
}
}
我已經用它做了一個小例子: http://www.jsfiddle.net/fftWg/
該死的,這很好! – menardmam 2011-01-21 17:22:22
什麼來隨機化jQuery對象,請看看我之前給出的答案。也許它有幫助,否則 - 不知道我是否真的明白你在做什麼之後;) - display galleria list of images in random order
基本的想法是有一個隨機數組並從頂部彈出每次你'下'直到你用盡陣列,然後重複。
從數組大小中獲取您的隨機數。並且每次顯示圖像時都會從陣列中移除該項目。數組爲空後,重新開始。
你的意思是這樣的: 代碼:
function RandomSlider()
{
var self = this;
this.pictures = new Array();
this.timeout = 2000; // wait 2000 ms
this.aniTime = "fast" or 1500;
// generate a random number
this.randomStart = function()
{
return Math.floor(Math.random() * self.pictures + 1);
}
this.SetAnimate = function(arrIndex)
{
setTimeout(function()
{
// do animation or what you want
$(....).animate({ .... }, self.aniTime, 'linear', function()
{
// do stuff when you are done with animation
if(arrIndex == self..pictures.length)
{
// when the random index is the last item in your case image 5 and array index 4
// then start over again, start with array index 0
self.SetAnimate(0);
}
else
{
// set the next slider item ready
self.SetAnimate(arrIndex + 1);
}
});
}, self.timeout);
}
this.StartSlider = function()
{
// start animation
this.SetAnimate(this.randomStart());
}
}
用法:
/
/ you can put in the array ID's classes attr urls all you want
var picture_array = new Array();
picture_array[0] = "image1";
picture_array[1] = "image2";
picture_array[2] = "image3";
picture_array[3] = "image4";
picture_array[4] = "image5";
var slider = new RandomSlider();
slider.pictures = picture_array;
slider.StartSlider();
我評估了pop()方法,但它可以附加人們會旋轉5張圖片,並第一個必須再次顯示... POP是不好的 – menardmam 2011-01-21 16:37:59