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 内置对象属性及方法集合
Jul 04 Javascript
Jquery实现搜索框提示功能示例代码
Aug 13 Javascript
用html+css+js实现的一个简单的图片切换特效
May 28 Javascript
Node.js 制作实时多人游戏框架
Jan 08 Javascript
JQuery控制Radio选中方法分析
May 29 Javascript
使用EVAL处理jqchart jquery 折线图返回数据无效的解决办法
Nov 26 Javascript
javascript 广告移动特效的实现代码
Jun 25 Javascript
浅谈JavaScript 覆盖原型以及更改原型
Aug 31 Javascript
vue 项目打包通过命令修改 vue-router 模式 修改 API 接口前缀
Jun 13 Javascript
vue-router源码之history类的浅析
May 21 Javascript
vue props default Array或是Object的正确写法说明
Jul 30 Javascript
jQuery实现朋友圈查看图片
Sep 11 jQuery
关于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中输出转义JavaScript代码的实现代码
2011/04/22 PHP
PHP提示Cannot modify header information - headers already sent by解决方法
2014/09/22 PHP
php中json_encode UTF-8中文乱码的更好解决方法
2014/09/28 PHP
PHP面向对象精要总结
2014/11/07 PHP
PHP版QQ互联OAuth示例代码分享
2015/07/05 PHP
js 判断文件类型并控制表单提交示例代码
2013/11/14 Javascript
jquery插件bxslider用法实例分析
2015/04/16 Javascript
js+div实现文字滚动和图片切换效果代码
2015/08/27 Javascript
简单实现jQuery级联菜单
2017/01/09 Javascript
vue.js如何将echarts封装为组件一键使用详解
2017/10/10 Javascript
uniapp,微信小程序中使用 MQTT的问题
2020/07/11 Javascript
[32:26]EG vs IG 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
[02:42]岂曰无衣,与子同袍!DOTA2致敬每一位守护人
2020/02/17 DOTA
下载安装setuptool和pip linux安装pip    
2014/01/24 Python
python中使用xlrd、xlwt操作excel表格详解
2015/01/29 Python
Android应用开发中Action bar编写的入门教程
2016/02/26 Python
Python Flask基础教程示例代码
2018/02/07 Python
tensorflow建立一个简单的神经网络的方法
2018/02/10 Python
Python编程在flask中模拟进行Restful的CRUD操作
2018/12/28 Python
Python3 Post登录并且保存cookie登录其他页面的方法
2018/12/28 Python
python自动发微信监控报警
2019/09/06 Python
TensorFlow 读取CSV数据的实例
2020/02/05 Python
python使用Thread的setDaemon启动后台线程教程
2020/04/25 Python
python实现数字炸弹游戏
2020/07/17 Python
matplotlib基础绘图命令之errorbar的使用
2020/08/13 Python
韩国三星旗下的一家超市连锁店:Home Plus
2016/07/30 全球购物
草莓网化妆品澳大利亚站:Strawberrynet AU
2017/12/18 全球购物
专科毕业生求职简历的自我评价
2013/10/12 职场文书
百年校庆节目主持词
2014/03/27 职场文书
爱我中华演讲稿
2014/05/20 职场文书
商场消防安全责任书
2014/07/29 职场文书
2014年群众路线教育实践活动整改措施
2014/09/24 职场文书
兵马俑的导游词
2015/02/02 职场文书
人生哲理妙语30条:淡写流年,笑过人生
2019/09/04 职场文书
Docker 镜像介绍以及commit相关操作
2022/04/13 Servers
Springboot-cli 开发脚手架,权限认证,附demo演示
2022/04/28 Java/Android