改变身体的背景图像

Vee*_*ech 24 javascript css

如何在运行时更改CSS中的背景图像?我在身体中有以下背景图像,可以在运行时更改图像吗?

body {
height: 100%;
background: #fff8db url(../images/backgrounds/header-top.jpg) no-repeat center top; 
/*background-color: #fff8db;*/
/*background-size: 1650px 900px;*/
font-family: Arial, Verdana, Helvetica, sans-serif; 
font-size:12px; 
font-weight:normal; 
color:#404040;
line-height:20px; }
Run Code Online (Sandbox Code Playgroud)

小智 57

您需要使用Javascript.您可以background-image像这样设置身体的样式.

var body = document.getElementsByTagName('body')[0];
body.style.backgroundImage = 'url(http://localhost/background.png)';
Run Code Online (Sandbox Code Playgroud)

只需确保将URL替换为实际的 URL.

  • 谢谢你的解决方案.只有一个问题; 为什么不使用`document.body`而不是`document.getElementsByTagName('body')[0]`? (3认同)

nat*_*ill 21

如果你已经加载了JQuery,你可以这样做:

$('body').css('background-image', 'url(../images/backgrounds/header-top.jpg)');
Run Code Online (Sandbox Code Playgroud)

编辑:

首先在head标签中加载JQuery:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" type="text/javascript"></script>
Run Code Online (Sandbox Code Playgroud)

然后调用Javascript以在页面上发生某些事情时更改背景图像,例如在完成加载时:

<script type="text/javascript">
    $(document).ready(function() {
        $('body').css('background-image', 'url(../images/backgrounds/header-top.jpg)');
    });
</script>
Run Code Online (Sandbox Code Playgroud)

  • 只是要指出,原始问题要求严格的javascript答案,这利用了jquery.下面的答案是根据实际问题做到这一点的正确方法.不知道为什么这被选为最佳答案. (9认同)

小智 7

只需在body上设置一个onload函数:

<body onload="init()">
Run Code Online (Sandbox Code Playgroud)

然后在javascript中执行以下操作:

function init() {
  var someimage = 'changableBackgroudImage';
  document.body.style.background = 'url(img/'+someimage+'.png) no-repeat center center'
}
Run Code Online (Sandbox Code Playgroud)

您可以根据某些条件(例如一天中的某个时间等)将"someimage"变量更改为您想要的任何值,并将该图像设置为背景图像.