爱莲学堂

爱莲学堂

利用Math.random做背景图像随机切换【前端开发技能必备系列】

你应该见过(尤其是在一个网站的登录页面,比如:人人小站)这样的效果:每次登录的页面背景都是不同的。这说明该页面很有可能启用了背景随机切换的效果。最初见到这种效果的呈现时,觉得比较炫,后来仔细想想,这个用javascript实现起来应该很简单。

先看一下我做的演示吧:http://www.threesnow.com/code/093/

1. 首先要准备一些图像,图像的大小(无论是尺寸大小还是数据大小)要控制好,如果太大,会使用户等不及查看全图就跳出了,如果太小,又会影响页面质量。

2. 在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";

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

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

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>

5. 思想有多远,你的程序就能走多远。

6. 从本文开始,爱莲学堂每发一篇文章附一则小笑话,以此为广大IT从业者做一点点心情上的放松,见右边栏“轻松一刻”。

posted on 2012-06-24 23:25  爱莲学堂  阅读(2834)  评论(5编辑  收藏  举报

导航