js实现随机div颜色位置 类似满天星效果


Posted in Javascript onOctober 24, 2019

本文实例为大家分享了js实现随机div颜色位置的具体代码,供大家参考,具体内容如下

效果如下:

js实现随机div颜色位置 类似满天星效果

代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>MTX</title>
 <style>
  div{width: 50px;height: 50px;position: absolute;}
 </style>
</head>
<body>
 
<!--//定义10个div,用于随机div的属性赋值-->
<div id="div1"></div>
<div id="div2"></div>
<div id="div3"></div>
<div id="div4"></div>
<div id="div5"></div>
<div id="div6"></div>
<div id="div7"></div>
<div id="div8"></div>
<div id="div9"></div>
<div id="div10"></div>
 
<script>
 
 init();//入口函数
 function init() {
  randomDiv();//初始的随机
 }
 
 setInterval(randomDiv,100);//函数名 毫秒——过多长时间运行一次这个函数
 
 function randomDiv(){
  for (var i=1;i<11;i++){//为定义的各个div块一一设置随机属性
   var divs=document.getElementById("div"+i);//divs作为每次循环的数据暂存
   var point=divPosition();//point作为位置的数据暂存
   cloneObj(divs.style,{
    left:point.left,
    top:point.top,
    backgroundColor:divColor()
   })
  }
 }
 
 function cloneObj(target,source){
  for (var key in source){
   target[key]=source[key];
  }
 }
 
 //div位置随机
 function divPosition(elemWidth,elemHeight) {
  if(!elemWidth) elemWidth=50;
  if(!elemHeight) elemHeight=50;
  var left=Math.random()*(document.documentElement.clientWidth-elemWidth)+"px";
  //屏幕宽度减去本来50ox宽度 的随机与左面的距离
  var top=Math.random()*(document.documentElement.clientHeight-elemHeight)+"px";
  //屏幕高度减去本来50ox高度 的随机与上面的距离
  return {left:left,top:top};//返回 与左面的距离 与上面的距离
 }
 
 //背景颜色随机
 function divColor() {
  var col="#";//这个字符串第一位为# 颜色的格式
  for(var i=0;i<6;i++){
   col+=parseInt(Math.random()*16).toString(16);
   //rondom*16后的随机值即为0-1*16==0-16; toString(16)为转化为16进制
  }
  return col;//最后返回一个七位的值 格式即为#nnnnnn 颜色的格式
 }
 
</script>
</body>
</html>

总结:

这个小项目的实现主要是基于了Js中的随机函数Math.random():

将此案例分为入口函数init(),主要在这个函数中加入了randomDiv()————随机div这个函数。

randomDiv()函数中又由三大块组成,分别为定义divs:即为这10个div块进行一一的赋值做准备,在这个for循环中一一为divs代表的div块赋予随机函数给他们的随机值。以及var定义的这两个变量去取我们下面介绍的divColor、divPosition两个函数中的值。

cloneObj()函数的作用是:

* 1、遍历源对象中的所有关键字,关键字定义的变量是key 。
* 2、设置目标对象上面增加关键字key,并且设置该关键字的值是源对象该关键字的值 。
* 3、返回目标对象。

然后再说一下 divColor()函数,var col="#";定义这个col字符串用于存我们的颜色格式,下面的rondom()函数即为我们的颜色随机赋值,利用到了16进制,最后返回一个七位的值 格式即为#nnnnnn 颜色的格式。

位置随机函数为divPosition(elemWidth,elemHeight):

if(!elemWidth) elemWidth=50; if(!elemHeight) elemHeight=50;
这两行的作用是将我们的初始div的高度宽度引入,以便我们在实现随机位置的时候不会出现div块超出我们浏览器窗口的情况。
document.documentElement.clientWidth-elemWidth 浏览器宽度-50
document.documentElement.clientHeight-elemHeight 浏览器高度-50
这两局话即实现上述描述的这个过程。
最后返回 与左面的距离 与上面的距离。

setInterval(randomDiv,100);//函数名 毫秒——过多长时间运行一次这个函数。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jquery 常用操作整理 基础入门篇
Oct 14 Javascript
上传文件返回的json数据会被提示下载问题解决方案
Dec 03 Javascript
JS解析XML文件和XML字符串详解
Apr 17 Javascript
使用EVAL处理jqchart jquery 折线图返回数据无效的解决办法
Nov 26 Javascript
jQuery Ajax 加载数据时异步显示加载动画
Aug 01 Javascript
javascript中BOM基础知识总结
Feb 14 Javascript
Bootstrap table简单使用总结
Feb 15 Javascript
js实现图片放大展示效果
Aug 30 Javascript
JavaScript实现图片本地预览功能【不用上传至服务器】
Sep 20 Javascript
详解vue如何使用rules对表单字段进行校验
Oct 17 Javascript
layui.use模块外部使用其内部定义的js封装函数方法
Sep 16 Javascript
关于vue 结合原生js 解决echarts resize问题
Jul 26 Javascript
windows实现npm和cnpm安装步骤
Oct 24 #Javascript
JS实现简单随机3D骰子
Oct 24 #Javascript
JS合并两个数组的3种方法详解
Oct 24 #Javascript
js实现简单掷骰子小游戏
Oct 24 #Javascript
js实现GIF图片的分解和合成
Oct 24 #Javascript
js实现掷骰子小游戏
Oct 24 #Javascript
Element-Ui组件 NavMenu 导航菜单的具体使用
Oct 24 #Javascript
You might like
使用php显示搜索引擎来的关键词
2014/02/13 PHP
PHP使用Memcache时模拟命名空间及缓存失效问题的解决
2016/02/27 PHP
Laravel学习教程之request validation的编写
2017/10/25 PHP
用javascript操作xml
2006/11/04 Javascript
javascript读取RSS数据
2007/01/20 Javascript
麻雀虽小五脏俱全 Dojo自定义控件应用
2010/09/04 Javascript
兼容IE和Firefox火狐的上下、左右循环无间断滚动JS代码
2013/04/19 Javascript
jquery清空textarea等输入框实现代码
2013/04/22 Javascript
javascript操作html控件实例(javascript添加html)
2013/12/02 Javascript
Javascript中获取对象的原型对象的方法小结
2015/02/25 Javascript
jQuery中$this和$(this)的区别介绍(一看就懂)
2015/07/06 Javascript
js实现当复选框选择匿名登录时隐藏登录框效果
2015/08/14 Javascript
jquery实现叠层3D文字特效代码分享
2015/08/21 Javascript
Angular2 PrimeNG分页模块学习
2017/01/14 Javascript
bootstrap fileinput 插件使用项目总结(经验)
2017/02/22 Javascript
Ajax实现不刷新取最新商品
2017/03/01 Javascript
自定义Vue组件打包、发布到npm及使用教程
2019/05/22 Javascript
js+css实现全屏侧边栏
2020/06/16 Javascript
vue-cli+webpack项目打包到服务器后,ttf字体找不到的解决操作
2020/08/28 Javascript
python 正确保留多位小数的实例
2018/07/16 Python
Python自动发送邮件的方法实例总结
2018/12/08 Python
选择python进行数据分析的理由和优势
2019/06/25 Python
Python 中list ,set,dict的大规模查找效率对比详解
2019/10/11 Python
在Python中使用MongoEngine操作数据库教程实例
2019/12/03 Python
Python抓新型冠状病毒肺炎疫情数据并绘制全国疫情分布的代码实例
2020/02/05 Python
基于python实现简单C/S模式代码实例
2020/09/14 Python
欧洲有机婴儿食品最大的市场:Organic Baby Food(供美国和加拿大)
2018/03/28 全球购物
标记环介质访问控制协议
2016/03/27 面试题
专科应届生求职信
2013/11/24 职场文书
电工工作职责范本
2014/02/22 职场文书
领导调研接待方案
2014/02/27 职场文书
超市商业计划书
2014/05/04 职场文书
英文推荐信格式范文
2014/05/09 职场文书
大学生优秀班干部事迹材料
2014/05/26 职场文书
nginx常用命令放入shell脚本详解
2021/03/31 Servers
MySQL删除和插入数据很慢的问题解决
2021/06/03 MySQL