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 相关文章推荐
为原生js Array增加each方法
Apr 07 Javascript
javascript使用中为什么10..toString()正常而10.toString()出错呢
Jan 11 Javascript
转义字符(\)对JavaScript中JSON.parse的影响概述
Jul 17 Javascript
AngularJS入门教程(一):静态模板
Dec 06 Javascript
jQuery trigger()方法用法介绍
Jan 13 Javascript
JavaScript动态改变div属性的实现方法
Jul 22 Javascript
老生常谈 js中this的指向
Jun 30 Javascript
xtemplate node.js 的使用方法实例解析
Aug 22 Javascript
jquery仿苹果的时间/日期选择效果
Mar 08 Javascript
jquery获取元素到屏幕四周可视距离的方法
Sep 05 jQuery
JS实现简单省市二级联动
Nov 27 Javascript
利用Vue的v-for和v-bind实现列表颜色切换
Jul 17 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和ACCESS写聊天室(六)
2006/10/09 PHP
根据ip调用新浪api获取城市名并转成拼音
2014/03/07 PHP
一个简单安全的PHP验证码类、PHP验证码
2016/09/24 PHP
php解压缩zip和rar压缩包文件的方法
2019/07/10 PHP
一直复略了的一个问题,关于表单重复提交
2007/02/15 Javascript
javascript中的this详解
2014/12/08 Javascript
使用js复制链接中的部分文字的方法
2015/07/30 Javascript
Perl Substr()函数及函数的应用
2015/12/16 Javascript
WordPress中鼠标悬停显示和隐藏评论及引用按钮的实现
2016/01/12 Javascript
Easyui ueditor 整合解决不能编辑的问题(推荐)
2017/06/25 Javascript
swiper移动端轮播插件(触碰图片之后停止轮播)
2017/12/28 Javascript
在 Angular中 使用 Lodash 的方法
2018/02/11 Javascript
layDate插件设置开始和结束时间
2018/11/15 Javascript
微信小程序new Date()方法失效问题解决方法
2019/07/29 Javascript
Vue 实现分页与输入框关键字筛选功能
2020/01/02 Javascript
怎么理解wx.navigateTo的events参数使用详情
2020/05/18 Javascript
解决ant Design中Select设置initialValue时的大坑
2020/10/29 Javascript
[06:53]2018DOTA2国际邀请赛寻真——勇于创新的Vici Gaming
2018/08/14 DOTA
详解在Python的Django框架中创建模板库的方法
2015/07/20 Python
python 生成器协程运算实例
2017/09/04 Python
python数据批量写入ScrolledText的优化方法
2018/10/11 Python
Python实现生成密码字典的方法示例
2019/09/02 Python
python tkinter基本属性详解
2019/09/16 Python
python 消除 futureWarning问题的解决
2019/12/25 Python
Python+pyftpdlib实现局域网文件互传
2020/08/24 Python
Pycharm中如何关掉python console
2020/10/27 Python
10个最常见的HTML5面试题 附答案
2016/06/06 HTML / CSS
AmazeUI底部导航栏与分享按钮的示例代码
2020/08/18 HTML / CSS
工程管理专业个人求职信范文
2013/12/07 职场文书
大学生职业生涯规划书前言
2014/01/09 职场文书
吸烟检讨书2000字
2014/02/13 职场文书
简洁的英文求职信范文
2014/05/03 职场文书
职位说明书范文
2014/05/07 职场文书
2015年会计人员工作总结
2015/05/22 职场文书
毕业论文指导老师意见
2015/06/04 职场文书
Python中常见的反爬机制及其破解方法总结
2021/06/10 Python