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 Ajax之$.get()方法和$.post()方法
Oct 12 Javascript
javascript禁制后退键(Backspace)实例代码
Nov 15 Javascript
jquery图片轮播插件仿支付宝2013版全屏图片幻灯片
Apr 03 Javascript
JS实现很酷的水波文字特效实例
Feb 26 Javascript
jQuery实现图片轮播效果代码
Sep 27 Javascript
Node.js的特点详解
Feb 03 Javascript
彻底解决 webpack 打包文件体积过大问题
Jul 07 Javascript
vue router学习之动态路由和嵌套路由详解
Sep 21 Javascript
一个手写的vue放大镜效果
Aug 09 Javascript
阿望教你用vue写扫雷小游戏
Jan 20 Javascript
JS中this的4种绑定规则详解
Feb 04 Javascript
原生JavaScript实现换肤
Feb 19 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下载远程图片函数 可伪造来路
2013/06/25 PHP
PHP编程风格规范分享
2014/01/15 PHP
PHP中通过trigger_error触发PHP错误示例
2015/06/23 PHP
PHP开发的文字水印,缩略图,图片水印实现类与用法示例
2019/04/12 PHP
JavaScript 替换Html标签实现代码
2009/10/14 Javascript
《JavaScript高级程序设计》阅读笔记(一) ECMAScript基础
2012/02/27 Javascript
点弹代码 点击页面任何位置都可以弹出页面效果代码
2012/09/17 Javascript
JS实现定时页面弹出类似QQ新闻的提示框
2013/11/07 Javascript
jquery的ajax跨域请求原理和示例
2014/05/08 Javascript
基于jQuery实现复选框是否选中进行答题提示
2015/12/10 Javascript
animate 实现滑动切换效果【实例代码】
2016/05/05 Javascript
基于jQuery实现滚动刷新效果
2017/01/09 Javascript
利用Mongoose让JSON数据直接插入或更新到MongoDB
2017/05/03 Javascript
微信小程序的分类页面制作
2017/06/27 Javascript
浅谈在koa2中实现页面渲染的全局数据
2017/10/09 Javascript
使用Bootstrap + Vue.js实现表格的动态展示、新增和删除功能
2017/11/27 Javascript
关于layui表单中按钮自动提交的解决方法
2019/09/09 Javascript
Javascript Web Worker使用过程解析
2020/03/16 Javascript
vue键盘事件点击事件加native操作
2020/07/27 Javascript
Vue多选列表组件深入详解
2021/03/02 Vue.js
Python操作列表的常用方法分享
2014/02/13 Python
零基础写python爬虫之抓取糗事百科代码分享
2014/11/06 Python
python使用KNN算法手写体识别
2018/02/01 Python
Linux下Pycharm、Anaconda环境配置及使用踩坑
2018/12/19 Python
python实现用户名密码校验
2020/03/18 Python
python 线程的五个状态
2020/09/22 Python
学生如何注册Pycharm专业版以及pycharm的安装
2020/09/24 Python
python 对一幅灰度图像进行直方图均衡化
2020/10/27 Python
python实现定时发送邮件到指定邮箱
2020/12/23 Python
CSS3弹性盒模型开发笔记(一)
2016/04/26 HTML / CSS
纯css3实现鼠标经过图片显示描述的动画效果
2014/09/01 HTML / CSS
Jowissa官方网站:瑞士制造的手表,优雅简约的设计
2020/07/29 全球购物
网上祭先烈心得体会
2014/09/01 职场文书
贫困生助学金感谢信
2015/01/21 职场文书
写给女朋友的检讨书
2015/05/06 职场文书
小学三年级数学教学反思
2016/02/16 职场文书