博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
创建对象的简单应用
阅读量:6344 次
发布时间:2019-06-22

本文共 2917 字,大约阅读时间需要 9 分钟。

题目:创建10个位置随机、颜色随机的盒子,每隔一段时间,需要更换这10个盒子的位置

一、盒子的原始html代码

    
产生10个小盒子,颜色随机位置随机

二、创建产生的小盒子对象

function Box(parent,options) {    options = options || {};    this.width = options.width || 25;    this.height = options.height || 25;    this.backgroundColor = options.backgroundColor || "red" ;    this.x = options.x || 0;    this.y = options.y || 0;    this.dom = document.createElement("div");    this.parent = parent;    this.init();//这里是调用初始化方法    }

三、创建小盒子的初始化方法

Box.prototype.init = function () {    var oDiv = this.dom;    oDiv.style.width = this.width + "px";    oDiv.style.height = this.height + "px";    oDiv.style.backgroundColor = this.backgroundColor;    oDiv.style.position = "absolute";    oDiv.style.left = this.x + "px";    oDiv.style.top = this.y + "px";    this.parent.appendChild(oDiv);}

四、引入通用的方法工具库

//产生min-max的随机数,包括min和maxfunction toRandom(min, max) {    return Math.round(Math.random() * (max - min)) + min;    // return Math.floor(Math.random()*(max-min+1))+min;    // return Math.ceil(Math.random()*(max-min+1))+min-1;}//获取随机颜色function getColor() {    var res = "#";    var arr = [0,1,2,3,4,5,6,7,8,9,'a','b','c','d','e','f'];    for (let i = 0; i < 6; i++) {       res += arr[toRandom(0, 16)];    }    return res;}

五、写具体代码实现小盒子的随机

var parent = document.querySelector(".box");        // new Box(parent);        // for (let i = 0; i < 10; i++) {
// new Box(parent,{x:toRandom(0,775), // y:toRandom(0,575), // backgroundColor:getColor()}); // } setInterval(function () { //删除之前生成的小盒子 for (var i = 0; i < parent.children.length; i++) { parent.removeChild(parent.children[i]); i--; } //生成新的盒子 for (var i = 0; i < 3; i++) { var box = new Box(parent,{x:toRandom(0,775), y:toRandom(0,575), backgroundColor:getColor()}); } },1000);

六、另外还可以将这个位置变换放到Box的原型上去

Box.prototype.random = function () {    var oDiv = this.dom;    setInterval(function () {        oDiv.style.top = toRandom(0, 575) + "px";        oDiv.style.left = toRandom(0, 775) + "px";        oDiv.style.backgroundColor = getColor();    },1000);}
for (let i = 0; i < 3; i++) {            new Box(parent,{x:toRandom(0,775),                            y:toRandom(0,575),                            backgroundColor:getColor()});        }

 七、为了防止变量污染,我们会将变量放到一个对象中,进行统一管理

var Tool = {//产生min-max的随机数,包括min和maxtoRandom:function (min, max) {    return Math.round(Math.random() * (max - min)) + min;},//获取随机颜色getColor:function () {    var res = "#";    var arr = [0,1,2,3,4,5,6,7,8,9,'a','b','c','d','e','f'];    for (let i = 0; i < 6; i++) {       res += arr[toRandom(0, 16)];    }    return res;}}

当使用时,只需要增加Tool. 即可

转载于:https://www.cnblogs.com/dhrwawa/p/10508398.html

你可能感兴趣的文章
linux内存管理之malloc、vmalloc、kmalloc的区别
查看>>
GreenDao 数据库升级 连接多个DB文件 或者指定不同的model&dao目录
查看>>
M1卡破解(自从学校升级系统之后,还准备在研究下)【转】
查看>>
vue 访问子组件示例 或者子元素
查看>>
linux内核--自旋锁的理解
查看>>
银行卡的三个磁道
查看>>
OpenSSL 提取 pfx 数字证书公钥与私钥
查看>>
Keepalived详解(四):通过vrrp_script实现对集群资源的监控【转】
查看>>
CollapsingToolbarLayoutDemo【可折叠式标题栏,顺便带有CardView卡片式布局】
查看>>
CentOS7.4安装配置mysql5.7 TAR免安装版
查看>>
解决IE二级链接无法打开故障
查看>>
Windows phone应用开发[16]-数据加密
查看>>
SQL Server 迁移数据到MySQL
查看>>
通用数据压缩算法简介
查看>>
The next Industry Standard in IT Monitoring, a python implementation Nagios like tool --- Shinken
查看>>
(笔记)找工作,该怎么进补
查看>>
div的显示和隐藏以及点击图标的更改
查看>>
(轉貼) Ubuntu將在ARM平台netbook上現身 (SOC) (News) (Linux) (Ubuntu)
查看>>
SQL注入测试工具:Pangolin(穿山甲)
查看>>
在html 的img属性里只显示图片的部分区域(矩形,给出开始点和结束点),其他部份不显示,也不要拉伸...
查看>>