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设置attr的disabled属性控制某行显示或者隐藏
Sep 25 Javascript
jquery 获取 outerHtml 包含当前节点本身的代码
Oct 30 Javascript
jquery实现点击页面计算点击次数
Jan 23 Javascript
浅谈JavaScript 浏览器对象
Jun 03 Javascript
jQuery简单实现彩色云标签效果示例
Aug 01 Javascript
微信js-sdk预览图片接口及从拍照或手机相册中选图接口用法示例
Oct 13 Javascript
浅谈Angularjs link和compile的使用区别
Oct 21 Javascript
Node.js实现文件上传的示例
Jun 28 Javascript
原生js 封装get ,post, delete 请求的实例
Aug 11 Javascript
详解vue 实例方法和数据
Oct 23 Javascript
写一个Vue Popup组件
Feb 25 Javascript
详解js创建对象的几种方式和对象方法
Mar 01 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+APACHE实现网址伪静态
2015/02/22 PHP
PHP传参之传值与传址的区别
2015/04/24 PHP
详解HTTP Cookie状态管理机制
2016/01/14 PHP
使用PHPExcel导出Excel表
2018/09/08 PHP
jQuery EasyUI API 中文文档 - Pagination分页
2011/09/29 Javascript
30个让人兴奋的视差滚动(Parallax Scrolling)效果网站
2012/03/04 Javascript
jquery选择器-根据多个属性选择示例代码
2013/10/21 Javascript
Jquery 改变radio/checkbox选中状态,获取选中的值(示例代码)
2013/12/12 Javascript
JavaScript原生对象常用方法总结(推荐)
2016/05/13 Javascript
微信小程序 实战程序简易新闻的制作
2017/01/09 Javascript
jQuery实现获取h1-h6标题元素值的方法
2017/03/06 Javascript
详解Vuejs2.0之异步跨域请求
2017/04/20 Javascript
jQuery异步提交表单实例
2017/05/30 jQuery
React Native开发封装Toast与加载Loading组件示例
2018/09/08 Javascript
在Layui中操作数据表格,给指定单元格添加事件示例
2019/10/26 Javascript
vue-cli设置css不生效的解决方法
2020/02/07 Javascript
如何在vue中使用jointjs过程解析
2020/05/29 Javascript
uniapp微信小程序实现一个页面多个倒计时
2020/11/01 Javascript
[34:56]Ti4冒泡赛LGD vs Liquid 1
2014/07/14 DOTA
Python使用urllib2获取网络资源实例讲解
2013/12/02 Python
详解python单例模式与metaclass
2016/01/15 Python
使用 Python 实现微信公众号粉丝迁移流程
2018/01/03 Python
python 用lambda函数替换for循环的方法
2018/06/09 Python
python实现贪吃蛇游戏
2020/03/21 Python
对python3 Serial 串口助手的接收读取数据方法详解
2019/06/12 Python
pycharm设置鼠标悬停查看方法设置
2019/07/29 Python
sklearn中的交叉验证的实现(Cross-Validation)
2021/02/22 Python
德国自行车商店:Tretwerk
2019/06/21 全球购物
EJB的角色和三个对象
2015/12/31 面试题
幼儿园安全检查制度
2014/01/30 职场文书
潘婷洗发水广告词
2014/03/14 职场文书
优秀共产党员先进事迹材料
2014/05/06 职场文书
实验心得体会
2014/09/05 职场文书
导游词之蜀山胜景瓦屋山
2019/11/29 职场文书
vue使用echarts实现折线图
2022/03/21 Vue.js
vue3 自定义图片放大器效果的示例代码
2022/07/23 Vue.js