如何在一段时间后改变图像背景?

时间:2011-01-27 19:26:27

标签: javascript asp.net jquery html css

HI大家

我需要知道是否有办法在特定时间(如10秒或30秒等)后更改背景图像。 你知道像雅虎登录邮件“它每天都在改变背景!!”

如果有使用JQuery或CSS或html或其他任何东西的方式,请告诉我

5 个答案:

答案 0 :(得分:6)

你可以使用javascript函数

<!DOCTYPE html>
<html>
<head>
<script type='text/javascript'>
var imageID=0;
function changeimage(every_seconds){
    //change the image
    if(!imageID){
        document.getElementById("myimage").src="http://www.all-freeware.com/images/full/38943-nice_feathers_free_screensaver_desktop_screen_savers__nature.jpeg";
        imageID++;
    }
    else{if(imageID==1){
        document.getElementById("myimage").src="http://www.hickerphoto.com/data/media/186/flower-bouquet-nice_12128.jpg";
        imageID++;
    }else{if(imageID==2){
        document.getElementById("myimage").src="http://www.photos.a-vsp.com/fotodb/14_green_cones.jpg";
        imageID=0;
    }}}
    //call same function again for x of seconds
    setTimeout("changeimage("+every_seconds+")",((every_seconds)*1000));
}
</script>
</head>
<body style='background:black;' onload='changeimage(2)'>
<div style='position:absolute;width:100%;height:100%;left:0px;top:0px;' align='center'><img width='300px' height='250px' id='myimage' src='http://www.photos.a-vsp.com/fotodb/14_green_cones.jpg'/></div>
</body></html>

试试这个! :)

答案 1 :(得分:2)

您可以使用CSS3 webkit动画来实现它,但权衡的是它只适用于Chrome和Safari,但您根本不需要任何JavaScript。

上面的jQuery建议是我最好的选择。

答案 2 :(得分:1)

您可以使用javascript的setTimeoutsetInterval来执行此操作,或查看JQuery's Timers

修改 使用JQuery,这将在1秒后改变背景:

$(window).oneTime(1000, function() {
    // change your background image here
  });

答案 3 :(得分:0)

您可以使用函数和setTimeout:

来完成
function changeBG()
{
    var body = document.getElementsByTagName("body")[0];
    body.style.backgroundImage = "url(myimage.gif)";
    setTimeout("changeBG",30000); // Change every 30 seconds
}

window.onload = changeBG;

(未经测试,因此可能需要调整或2)

答案 4 :(得分:0)

如果您正在使用Prototype库:

var changeBackground = function() {
   $$('body').first().setStyle({
      backgroundImage: 'newImage.jpg'
   });
};
changeBackground.delay(15);