js实例:点击图片改变页面背景图

发布时间:2020-06-20编辑:脚本学堂
如何用js脚本实现点击图片改变页面背景图,这里分享一个javascript操作css与图片的技巧,点击指定图片让网页背景随之变化。

js代码实现点击图片改变页面背景图

代码:
 

复制代码 代码示例:
<html>
<head>
<title>点击图片即改变页面的背景图片 - www.jb200.com</title>
</head>
<body bgcolor="#FFFFFF" leftmargin="0" marginwidth="0">
<script language="javascript1.2">
<!--
function tile(){
if (!document.all)
return
var source=event.srcElement
if (source.tagName=="IMG")
document.body.style.backgroundImage="url("+source.src+")"
}
function restore(){
document.body.style.backgroundImage=''
}
document.body.ondblclick=restore
-->
</script>
  </p>
  <p align="center"><span class="bgimages" onClick="tile();event.cancelBubble=true">
  <img src="/images/m01.jpg" height=65 width=96 border=2>
  <img src="/images/m02.jpg" height=65 width=96 border=2>
<br>
  <img src="/images/m03.jpg" height=65 width=96 border=2>
  <img src="/images/m04.jpg" height=65 width=96 border=2></span></p>
</td>
  </tr>
</table>
</center>
</body>
</html>

js实现网页随机切换背景图片的方法

方法:
首先要准备一些图像,图像的大小(无论是尺寸大小还是数据大小)要控制好,如果太大,会使用户等不及查看全图就跳出了,如果太小,又会影响页面质量
在script中将这些图像编为一个数组,便于调用。数组的长度当然就是图像的数量。
var bodyBgs = [];//创建一个数组变量来存储背景图片的路径
 

bodyBgs[0] = "images/01.jpg";
bodyBgs[1] = "images/02.jpg";
bodyBgs[2] = "images/03.jpg";
bodyBgs[3] = "images/04.jpg";
bodyBgs[4] = "images/05.jpg";

因为上面用到了5个图像,所以在这里需要产生一个0到4的随机数。如果数组长度不一样,修改下面代码中的乘数就可以。
 

var randomBgIndex = Math.round( Math.random() * 4 );

若以此为基础,通过加工可以做出一些扩展功能。比如:主题切换以及其它的随机呈现等等。

完整的js代码:
 

复制代码 代码示例:
<script type="text/javascript">
//<!CDATA[
var bodyBgs = [];
bodyBgs[0] = "images/01.jpg";
bodyBgs[1] = "images/02.jpg";
bodyBgs[2] = "images/03.jpg";
bodyBgs[3] = "images/04.jpg";
bodyBgs[4] = "images/05.jpg";
var randomBgIndex = Math.round( Math.random() * 4 );
//输出随机的背景图
document.write('<style>body{background:url(' + bodyBgs[randomBgIndex] + ') no-repeat 50% 0}</style>');
//]]>
</script>

纯js实现背景图片切换效果代码

html代码:
 

复制代码 代码示例:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>背景切换</title>
<link href="css/bgchage.css" type="text/css" rel="Stylesheet" />
</head>
<body>
<div><ul><li></li><li></li><li></li><li></li></ul></div>
<!-- <div>1</div><div>2</div><div>3</div><div>4</div>-->
</body>
<script src="js/bgchage.js" type="text/javascript" ></script>
</html>

因为javascript逻辑顺序比较强,所以要考虑引用js的位置
css代码
 

复制代码 代码示例:
body {font-size:12px;}
div{ width:950px; height:800px; margin:0 auto; border:solid 1px #d0d0d0;}
li{ list-style-type:none;border:solid 1px #d0d0d0; float:left; margin: 1px; padding:0 5px; height:12px; width:10px;}
/*div{ width:6px; height:14px; margin:1px; padding:0 5px; float:left; border:solid 1px #d0d0d0;}*/

javascript代码部分:
 

复制代码 代码示例:
window.onload=init;
var element= document.getElementsByTagName("li");
function init() //初始化背景色
{
var element= document.getElementsByTagName("li");
for(var i=0; i<4;i++)
{
var k=i+1;
element[i].style.background="url(images/"+k.toString()+".jpg)";
}
}
function addclick()
{
for(var i=0; i<4;i++)
{
var k=i+1;
if(window.attachEvent)
element[i].attachEvent("onclick", new Function("bgchage("+k+");")); //创建事件不能直接.onclick而需要使用.attachEvent("事件",new Function("被调函数("+参数+");"));IE6通过
else
element[i].addEventListener("click", new Function("bgchage("+k+");"),false);
}
}
function bgchage(t) //根据色块改变背景色
{
document.getElementsByTagName("body")[0].style.background="url(images/"+t+".jpg)";
}
addclick();