2015-06-30 168 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,正如其他答案所暗示的那样。