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 相关文章推荐
jquery 简单的进度条实现代码
Mar 11 Javascript
面向对象继承实例(a如何继承b问题)(自写)
Jul 01 Javascript
刷新页面的几种方法小结(JS,ASP.NET)
Jan 07 Javascript
怎么判断js脚本加载完成
Feb 28 Javascript
对jQuary选择器的全面总结
Jun 20 Javascript
JS解决iframe之间通信和自适应高度的问题
Aug 24 Javascript
angularjs 表单密码验证自定义指令实现代码
Oct 27 Javascript
JavaScript设计模式之代理模式详解
Jun 09 Javascript
详解vue.js根据不同环境(正式、测试)打包到不同目录
Jul 13 Javascript
vue组件从开发到发布的实现步骤
Nov 11 Javascript
JavaScript canvas基于数组生成柱状图代码实例
Mar 06 Javascript
JavaScript语句错误throw、try及catch实例解析
Aug 18 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
世界收音机发展史
2021/03/01 无线电
模拟SQLSERVER的两个函数:dateadd(),datediff()
2006/10/09 PHP
ThinkPHP框架中使用Memcached缓存数据的方法
2018/03/31 PHP
js bind 函数 使用闭包保存执行上下文
2011/12/26 Javascript
JS 打印功能代码可实现打印预览、打印设置等
2014/10/31 Javascript
js实现向右横向滑出的二级菜单效果
2015/08/27 Javascript
EasyUI Combobox设置默认值 获取text的方法
2016/11/28 Javascript
原生js jquery ajax请求以及jsonp的调用方法
2017/08/04 jQuery
实例教学如何写vue插件
2017/11/30 Javascript
详解Vue打包优化之code spliting
2018/04/09 Javascript
详解如何为你的angular app构建一个第三方库
2018/12/07 Javascript
nodejs中request库使用HTTPS代理的方法
2019/04/30 NodeJs
Vue路由前后端设计总结
2019/08/06 Javascript
vue 输入电话号码自动按3-4-4分割功能的实现代码
2020/04/30 Javascript
原生JS实现拖拽效果
2020/12/04 Javascript
[51:17]完美世界DOTA2联赛循环赛Inki vs DeMonsTer 第二场 10月30日
2020/10/31 DOTA
Python字符串和字典相关操作的实例详解
2017/09/23 Python
Python批量更改文件名的实现方法
2017/10/29 Python
基于python实现简单日历
2018/07/28 Python
对Python生成器、装饰器、递归的使用详解
2019/07/19 Python
Django命名URL和反向解析URL实现解析
2019/08/09 Python
利用anaconda作为python的依赖库管理方法
2019/08/13 Python
python 3.7.4 安装 opencv的教程
2019/10/10 Python
学习Python爬虫的几点建议
2020/08/05 Python
python matlab库简单用法讲解
2020/12/31 Python
CSS3 实现侧边栏展开收起动画
2014/12/22 HTML / CSS
网易微博Web App用HTML5开发的过程介绍
2012/06/13 HTML / CSS
玖熙女鞋美国官网:Nine West
2016/10/06 全球购物
中学生获奖感言
2014/02/04 职场文书
校运会入场式解说词
2014/02/10 职场文书
党支部公开承诺践诺书
2014/03/28 职场文书
需求分析说明书
2014/05/09 职场文书
法人授权委托书公证范本
2014/09/14 职场文书
离职感谢信怎么写
2015/01/22 职场文书
个人求职信格式范文
2015/03/20 职场文书
项目战略合作意向书
2015/05/08 职场文书