2013-02-22 80 views
0

所以我想旋轉一些文本片段與JavaScript順序。下面的代碼是隨機的,我的JavaScript是zilch。有人可以指導我如何使這個循環順序?謝謝!更改隨機Javascript的旋轉順序

網站建在Concrete5。 http://www.travelus.com.au/about-us/trial

<head> 
<script type="text/javascript"> 
//messages keep each message on one line 
var messages=new Array(
'message 1', 
'message 2', 
'message 3', 
'message 4.' 
) 
//timer in seconds 
var timer=5; 
function firstMessage(){ 
newMessage() 
setInterval ("newMessage()", timer*1000); 
} 
function newMessage() 
{ 
var randno=Math.floor(Math.random()*(messages.length)); 
var elem =document.getElementById("msg"); 
elem.innerHTML = messages[randno]; 
} 
</script> 
</head> 
<body onload="firstMessage()"> 
<div id="msg">There is supposed to be some content in this box, but you need Javascript to see it...</div> 
</body> 

回答

1

嘗試此,變量i保持要顯示當前元素的索引。和其到達的消息結束之後,它現在您的消息在隨機與randno變量,它隨機地通過產生一個隨機數選擇您的郵件的一個被選擇重置回0

var i=0; 
function newMessage() 
{ 
    if(i===messages.length) 
    { 
    i=0; 
    } 
var elem =document.getElementById("msg"); 
elem.innerHTML = messages[i]; 
i=i+1; 
} 
+0

工作就像一個魅力。 – Lime 2013-02-22 20:04:05

0
elem.innerHTML = messages[0]; 
messages.push(messages.shift()); 
1

。爲了順序(和旋轉,我想你會喜歡它),你需要創建一個範圍高於newMessage函數的變量 - 基本上不在函數調用之外。

要做到這一點,你會想要做這樣的事情:

var index = 0; 
function newMessage() 
{ 
    index = (index + 1) % messages.length 
    var elem =document.getElementById("msg"); 
    elem.innerHTML = messages[index]; 
} 

%符號是模量,讓您的指數由你的郵件數除以新值的剩餘部分所以你的電話號碼永遠不會比你擁有的電話號碼多。這稱爲modular arithmetic或時鐘算術。

+0

謝謝!翔實。 – Lime 2013-02-22 20:05:11