js实现点击生成随机div


Posted in Javascript onJanuary 16, 2020

本文实例为大家分享了js实现点击生成随机div的具体代码,供大家参考,具体内容如下

描述:

鼠标点击页面,在哪里点击就在那个位置创建一个div,宽高50,
颜色随机,div在鼠标点击的正中间

效果:

js实现点击生成随机div

实现:

js:

var Method=(function () {
  return {
    EVENT_ID:"event_id",
    loadImage:function (arr) {
      var img=new Image();
      img.arr=arr;
      img.list=[];
      img.num=0;
//      如果DOM对象下的事件侦听没有被删除掉,将会常驻堆中
//      一旦触发了这个事件需要的条件,就会继续执行事件函数
      img.addEventListener("load",this.loadHandler);
      img.self=this;
      img.src=arr[img.num];
    },
    loadHandler:function (e) {
      this.list.push(this.cloneNode(false));
      this.num++;
      if(this.num>this.arr.length-1){
        this.removeEventListener("load",this.self.loadHandler);
        var evt=new Event(Method.EVENT_ID);
        evt.list=this.list;
        document.dispatchEvent(evt);
        return;
      }
      this.src=this.arr[this.num];
    },
    $c:function (type,parent,style) {
      var elem=document.createElement(type);
      if(parent) parent.appendChild(elem);
      for(var key in style){
        elem.style[key]=style[key];
      }
      return elem;
    },
    divColor: function () {
      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 颜色的格式
    },
    random:function (min,max) {
      max=Math.max(min,max);
      min=Math.min(min,max);
      return Math.floor(Math.random()*(max-min)+min);
    },
    dragElem:function (elem) {
      elem.addEventListener("mousedown",this.mouseDragHandler);
      elem.self=this;
    },
    removeDrag:function (elem) {
      elem.removeEventListener("mousedown",this.mouseDragHandler);
    },
    mouseDragHandler:function (e) {
      if(e.type==="mousedown"){
        e.stopPropagation();
        e.preventDefault();
        document.point={x:e.offsetX,y:e.offsetY};
        document.elem=this;
        this.addEventListener("mouseup",this.self.mouseDragHandler);
        document.addEventListener("mousemove",this.self.mouseDragHandler);
      }else if(e.type==="mousemove"){
        this.elem.style.left=e.x-this.point.x+"px";
        this.elem.style.top=e.y-this.point.y+"px";
      }else if(e.type==="mouseup"){
        this.removeEventListener("mouseup",this.self.mouseDragHandler);
        document.removeEventListener("mousemove",this.self.mouseDragHandler);
      }
    }
  }
})();

html:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
</head>
<script src="js/Method.js"></script>
<body>
  <script>
    init();
    function init() {
      document.addEventListener("mousedown",mouseHandler);
    }
 
    function mouseHandler(e) {
      var randomDiv=Method.$c("div",document.body,{
        width: "50px",
        height: "50px",
        position: "absolute",
        backgroundColor:divColor()
      })
      randomDiv.style.left=e.clientX-randomDiv.offsetWidth/2+"px";
      randomDiv.style.top=e.clientY-randomDiv.offsetHeight/2+"px";
/*      top:e.clientY-this.offsetHeight/2+"px",//原因 设置为了X...xbl
//      removeEventListener(randomDiv);*/
    }
 
    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>

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

Javascript 相关文章推荐
用 javascript 实现的点击复制代码
Mar 24 Javascript
js抽奖实现随机抽奖代码效果
Dec 02 Javascript
JavaScript格式化日期时间的方法和自定义格式化函数示例
Apr 04 Javascript
jQuery中die()方法用法实例
Jan 19 Javascript
基于jQuery实现多标签页切换的效果(web前端开发)
Jul 24 Javascript
又一款js时钟!transform实现时钟效果
Aug 15 Javascript
Kendo Grid editing 自定义验证报错提示的解决方法
Nov 18 Javascript
如何提高数据访问速度
Dec 26 Javascript
js实现图片360度旋转
Jan 22 Javascript
JavaScript引用类型Object常见用法实例分析
Aug 08 Javascript
构建大型 Vue.js 项目的10条建议(小结)
Nov 14 Javascript
如何使用原生Js实现随机点名详解
Jan 06 Javascript
关于vue3.0中的this.$router.replace({ path: '/'})刷新无效果问题
Jan 16 #Javascript
JS实现可视化音频效果的实例代码
Jan 16 #Javascript
js实现div色块碰撞
Jan 16 #Javascript
Vue实现 点击显示再点击隐藏效果(点击页面空白区域也隐藏效果)
Jan 16 #Javascript
vue列表数据发生变化指令没有更新问题及解决方法
Jan 16 #Javascript
使用Karma做vue组件单元测试的实现
Jan 16 #Javascript
js实现div色块拖动录制
Jan 16 #Javascript
You might like
PHP简单实现模拟登陆功能示例
2017/09/15 PHP
php反射学习之不用new方法实例化类操作示例
2019/06/14 PHP
Yii框架布局文件的动态切换操作示例
2019/11/11 PHP
JQuery为textarea添加maxlength属性的代码
2010/04/07 Javascript
jquery 利用show和hidden实现级联菜单示例代码
2013/08/09 Javascript
用jQuery toggleClass 实现鼠标移上变色
2014/05/14 Javascript
NodeJS学习笔记之Connect中间件模块(一)
2015/01/27 NodeJs
JavaScript错误处理
2015/02/03 Javascript
js以及jquery实现手风琴效果
2020/04/17 Javascript
jQuery编写textarea输入字数限制代码
2017/03/23 jQuery
nodejs前端自动化构建环境的搭建
2017/07/26 NodeJs
angular中的cookie读写方法
2017/08/02 Javascript
移动端图片上传旋转、压缩问题的方法
2018/10/16 Javascript
layui table表格数据的新增,修改,删除,查询,双击获取行数据方式
2019/11/14 Javascript
Javascript实现鼠标点击冒泡特效
2019/12/24 Javascript
解决Vue项目中tff报错的问题
2020/10/21 Javascript
[01:03:54]Liquid vs IG 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
python如何查看系统网络流量的信息
2016/09/12 Python
CentOS6.9 Python环境配置(python2.7、pip、virtualenv)
2019/05/06 Python
远程部署工具Fabric详解(支持Python3)
2019/07/04 Python
Python学习笔记之错误和异常及访问错误消息详解
2019/08/08 Python
Python post请求实现代码实例
2020/02/28 Python
python中的对数log函数表示及用法
2020/12/09 Python
css3实现的多级渐变下拉菜单导航效果代码
2015/08/31 HTML / CSS
CSS3实现3D翻书效果
2016/06/20 HTML / CSS
HTML5 Canvas 破碎重组的视频特效的示例代码
2019/09/24 HTML / CSS
HTML5的postMessage的使用手册
2018/12/19 HTML / CSS
Europcar美国/加拿大:预订汽车或卡车租赁服务
2018/11/13 全球购物
意大利珠宝店:Luxury Zone
2019/01/05 全球购物
学年自我鉴定
2014/01/16 职场文书
青年文明号复核材料
2014/02/11 职场文书
文科生自我鉴定
2014/02/15 职场文书
判缓刑人员个人思想汇报
2014/10/10 职场文书
领导干部作风建设总结
2014/10/23 职场文书
2015年国庆节新闻稿
2015/07/18 职场文书
小学运动会入场词
2015/07/18 职场文书