2015-06-30 166 views
-2
function random_imglink() { 
    var myimages = new Array() 
     //specify random images below. You can have as many as you wish 
    myimages[1] = "This is text1." 
    myimages[2] = "This is text2." 
    myimages[3] = "This is text3." 
    myimages[4] = "This is text4." 
    myimages[5] = "This is text5." 
    myimages[6] = "This is text6." 

    var ry = Math.floor(Math.random() * myimages.length) 
    if (ry == 0) 
     ry = 1 
    document.write('<h1 class="comingsoon">' + myimages[ry] + '</h1>') 
} 
random_imglink() 

如何讓上面的代碼每3秒刷新一次?比如,輸出每3秒刷新一次。謝謝。每3秒刷新一次功能

+0

使用Javascript setInterval函數這裏的教程和演示HTTP:// WWW。 w3schools.com/jsref/met_win_setinterval.asp – Amit

+0

@表示結果顯示爲http://i.imgur.com/k3kPK81.png。我試過使用setinterval,但不是我所期望的。 document.write代碼是否正確?請檢查。 – youdoreallysay

+0

@youdoreallysay首先澄清你的預期結果是什麼..? –

回答

0

我創建了一個小提琴,我認爲做你想要的。

我希望你喜歡貓。

http://jsfiddle.net/alexjamesbrown/9cu5L666/

注 - 我設置一個div的內部HTML,而不是整個文件

function random_imglink() { 

    var myimages = new Array() 
    //specify random images below. You can have as many as you wish 
    myimages[1] = "http://placekitten.com/g/100/400" 
    myimages[2] = "http://placekitten.com/g/200/250" 
    myimages[3] = "http://placekitten.com/g/300/234" 
    myimages[4] = "http://placekitten.com/g/500/300" 
    myimages[5] = "http://placekitten.com/g/100/400" 
    myimages[6] = "http://placekitten.com/g/430/100" 

    var ry = Math.floor(Math.random() * myimages.length) 
    if (ry == 0) 
     ry = 1; 

    var div = document.getElementById('myContainer'); 
    div.innerHTML='<h1 class="comingsoon"><img src="' + myimages[ry] + '"</img></h1>' 
} 
setInterval(function(){ random_imglink(); }, 3000); 
+1

感謝您向我展示最後的第3 /第4行!我非常想通了自己多虧了你的這些線^ _^ – youdoreallysay

+0

我知道貓會幫助... ;-) – Alex

+0

它確實沒有^ _ ^當我離開頁面一分鐘,文本開始變得瘋狂。比如,它每3秒鐘不會改變一次,每1毫秒開始改變一次?這是在JS或..的正常錯誤? – youdoreallysay

0

您可以使用setInterval

window.setInterval(random_imglink,3000); 
+0

結果顯示爲http://i.imgur.com/k3kPK81.png。我試過使用setinterval,但不是我所期望的。 document.write代碼是否正確?請檢查。 – youdoreallysay

0

您可以使用

window.setInterval(random_imglink, 3000); 

但要小心,因爲如果你的瀏覽器不顯示的時間間隔內容,你應該期望振盪格局和丟幀現象。更好的方法是使用requestAnimationFrame

的Window.requestAnimationFrame()方法告訴你 希望執行的動畫,並請求瀏覽器調用 指定功能的下一個重繪之前更新動畫瀏覽器。 方法需要在重繪之前調用回調。

function random_imglink() { 
    var myimages = new Array() 
     //specify random images below. You can have as many as you wish 
    myimages[1] = "This is text1." 
    myimages[2] = "This is text2." 
    myimages[3] = "This is text3." 
    myimages[4] = "This is text4." 
    myimages[5] = "This is text5." 
    myimages[6] = "This is text6." 

    var ry = Math.floor(Math.random() * myimages.length) 
    if (ry == 0) 
     ry = 1 
    document.body.innerHTML = '<h1 class="comingsoon">' + myimages[ry] + '</h1>'; 
} 


window.setInterval(random_imglink, 3000); 
+0

結果顯示爲http://i.imgur.com/k3kPK81.png。我曾嘗試使用setinterval,但不是我所期待的。 document.write代碼是否正確?請檢查。 – youdoreallysay

+0

更新了代碼 –

1

setInterval對您的查詢更簡單的方法。

簡單的例子:

setInterval(function(){ alert("Hello"); }, 3000); 
+0

它沒有像我期望的那樣工作。我希望頁面中間的文本每3秒刷新一次,我已經嘗試使用像你所說的setInterval,但它不遵循CSS規則,並完全用所述文本創建一個新頁面。 – youdoreallysay

+0

@youdoreallysay是啊,這是因爲你使用'document.write()顯示你的文本'不要使用它,如果你想顯示在'DOM'內 – Amit

1

不要使用document.write。改爲使用document.innerHTML

write()方法主要用於測試:如果在HTML文檔被完全加載後使用它,它將刪除所有現有的HTML。

當然還有setInterval,正如其他答案所暗示的那樣。