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 相关文章推荐
syntaxhighlighter 使用方法
Jul 02 Javascript
不使用XMLHttpRequest实现异步加载 Iframe和script
Oct 29 Javascript
利用JS实现浏览器的title闪烁
Jul 08 Javascript
Angularjs编写KindEditor,UEidtor,jQuery指令
Jan 28 Javascript
BootStrap学习系列之Bootstrap Typeahead 组件实现百度下拉效果(续)
Jul 07 Javascript
js实现随机抽选效果、随机抽选红色球效果
Jan 13 Javascript
JS中图片压缩的方法小结
Nov 14 Javascript
AngularJs1.x自定义指令独立作用域的函数传入参数方法
Oct 09 Javascript
详解express使用vue-router的history踩坑
Jun 05 Javascript
基于Express框架使用POST传递Form数据
Aug 10 Javascript
解决vue admin element noCache设置无效的问题
Nov 12 Javascript
vue+Element中table表格实现可编辑(select下拉框)
May 21 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
C#静态方法与非静态方法实例分析
2014/09/22 PHP
php命令行(cli)下执行PHP脚本文件的相对路径的问题解决方法
2015/05/25 PHP
php获取远程文件大小
2015/10/20 PHP
PHP微信开发之有道翻译
2016/06/23 PHP
Aster vs KG BO3 第三场2.18
2021/03/10 DOTA
云网广告中的代码,提示出错,大家找找
2006/11/21 Javascript
jQuery UI 应用不同Theme的办法
2010/09/12 Javascript
javascript代码加载优化方法
2011/01/30 Javascript
Jquery ajax基础教程
2015/11/20 Javascript
jQuery中clone()函数实现表单中增加和减少输入项
2017/05/13 jQuery
打通前后端构建一个Vue+Express的开发环境
2018/07/17 Javascript
解决vue-cli 打包后自定义动画未执行的问题
2019/11/12 Javascript
v-slot和slot、slot-scope之间相互替换实例
2020/09/04 Javascript
Python 26进制计算实现方法
2015/05/28 Python
Python中方法链的使用方法
2016/02/23 Python
Python实现excel转sqlite的方法
2017/07/17 Python
Python实现PS图像调整之对比度调整功能示例
2018/01/26 Python
python spyder中读取txt为图片的方法
2018/04/27 Python
Python实现求一个集合所有子集的示例
2018/05/04 Python
Python访问MongoDB,并且转换成Dataframe的方法
2018/10/15 Python
对numpy中的where方法嵌套使用详解
2018/10/31 Python
Python线性拟合实现函数与用法示例
2018/12/13 Python
浅谈pyqt5中信号与槽的认识
2019/02/17 Python
学习python可以干什么
2019/02/26 Python
python实现视频分帧效果
2019/05/31 Python
css3 中translate和transition的使用方法
2020/03/26 HTML / CSS
canvas 橡皮筋式线条绘图应用方法
2019/02/13 HTML / CSS
HTML5语义化元素你真的用对了吗
2019/08/22 HTML / CSS
香港化妆品经销商:我的公主
2016/08/05 全球购物
师范院校学生自荐信范文
2013/12/27 职场文书
知识竞赛主持词
2014/03/26 职场文书
小学生爱国演讲稿
2014/04/25 职场文书
活动倡议书范文
2014/05/13 职场文书
2014国庆节幼儿园亲子活动方案
2014/09/16 职场文书
2014年十一国庆节爱国演讲稿
2014/09/23 职场文书
Python基础之常用库常用方法整理
2021/04/30 Python