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 可以拖动的DIV(二)
Jun 26 Javascript
js与jquery回车提交的方法
Feb 03 Javascript
简述JavaScript的正则表达式中test()方法的使用
Jun 16 Javascript
WEB前端实现裁剪上传图片功能
Oct 17 Javascript
BootStrap Fileinput的使用教程
Dec 30 Javascript
微信小程序实战之顶部导航栏(选项卡)(1)
Jun 19 Javascript
JS实现点击Radio动态更新table数据
Jul 18 Javascript
jQuery使用bind函数实现绑定多个事件的方法
Oct 11 jQuery
ES6/JavaScript使用技巧分享
Dec 14 Javascript
小程序简单两栏瀑布流效果的实现
Dec 18 Javascript
vue实现把接口单独存放在一个文件方式
Aug 13 Javascript
关于IDEA中的.VUE文件报错 Export declarations are not supported by current JavaScript version
Oct 17 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
ajax调用返回php接口返回json数据的方法(必看篇)
2017/05/05 PHP
作为PHP程序员你要知道的另外一种日志
2018/07/30 PHP
解决php用mysql方式连接数据库出现Deprecated报错问题
2019/12/25 PHP
javascript开发中因空格引发的错误
2010/11/08 Javascript
jQuery 源码分析笔记(2) 变量列表
2011/05/28 Javascript
jquery实现带复选框的表格行选中删除时高亮显示
2013/08/01 Javascript
jQuery中detach()方法用法实例
2014/12/25 Javascript
js实现每日自动换一张图片的方法
2015/05/04 Javascript
JavaScript中Number.NEGATIVE_INFINITY值的使用详解
2015/06/05 Javascript
jQuery实现带有上下控制按钮的简单多行滚屏效果代码
2015/09/04 Javascript
ES6中Proxy代理用法实例浅析
2017/04/06 Javascript
vuex 使用文档小结篇
2018/01/11 Javascript
浅谈js闭包理解
2019/03/28 Javascript
详解Vue 匿名、具名和作用域插槽的使用方法
2019/04/22 Javascript
express启用https使用小记
2019/05/21 Javascript
Cordova(ionic)项目实现双击返回键退出应用
2019/09/17 Javascript
微信小程序实现可拖动悬浮图标(包括按钮角标的实现)
2020/12/29 Javascript
Python爬虫爬取美剧网站的实现代码
2016/09/03 Python
关于Python turtle库使用时坐标的确定方法
2020/03/19 Python
python 日志模块 日志等级设置失效的解决方案
2020/05/26 Python
深入了解python列表(LIST)
2020/06/08 Python
Python collections.defaultdict模块用法详解
2020/06/18 Python
Django配置跨域并开发测试接口
2020/11/04 Python
HTML5实现无刷新修改URL的方法
2019/11/14 HTML / CSS
意大利制造的男鞋和女鞋:SCAROSSO
2018/03/07 全球购物
武汉世纪畅想数字传播有限公司 .NET笔试题
2015/06/13 面试题
ktv收银员岗位职责
2013/12/16 职场文书
医药销售求职信范文
2014/02/01 职场文书
街道党风廉政建设调研报告
2015/01/01 职场文书
2015年公司工作总结
2015/04/25 职场文书
2015年禁毒工作总结
2015/04/30 职场文书
物业保洁员管理制度
2015/08/05 职场文书
先进教师个人主要事迹材料
2015/11/03 职场文书
2016中秋节月饼促销广告语
2016/01/28 职场文书
详解Html5项目适配系统深色模式方案总结
2021/04/14 HTML / CSS
HTML+CSS 实现顶部导航栏菜单制作
2021/06/03 HTML / CSS