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 相关文章推荐
IE8 中使用加速器(Activities)
May 14 Javascript
IE6中使用position导致页面变形的解决方案(js代码)
Jan 09 Javascript
StringTemplate遇见jQuery冲突的解决方法
Sep 22 Javascript
Prototype源码浅析 String部分(三)之HTML字符串处理
Jan 15 Javascript
JavaScript执行顺序详细介绍
Dec 04 Javascript
JavaScript实现网站访问次数统计代码
Aug 12 Javascript
基于jQuery封装的分页组件
Jun 26 jQuery
微信小程序 POST请求的实例详解
Sep 29 Javascript
Angular 4中如何显示内容的CSS样式示例代码
Nov 06 Javascript
vue实现在一个方法执行完后执行另一个方法的示例
Aug 25 Javascript
Vue.js实现可排序的表格组件功能示例
Feb 19 Javascript
基于vue-cli3创建libs库的实现方法
Dec 04 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下通过curl抓取yahoo boss 搜索结果的实现代码
2011/06/10 PHP
session在PHP大型web应用中的使用
2011/06/25 PHP
PHP学习笔记(三):数据类型转换与常量介绍
2015/04/17 PHP
Laravel 5.1 on SAE环境开发教程【附项目demo源码】
2016/10/09 PHP
php 如何设置一个严格控制过期时间的session
2017/05/05 PHP
Laravel解决nesting level错误和隐藏index.php的问题
2019/10/12 PHP
JQuery 学习笔记 选择器之五
2009/07/23 Javascript
一次失败的jQuery优化尝试小结
2011/02/06 Javascript
JS幻灯片可循环播放可平滑旋转带滚动导航(自写)
2013/08/05 Javascript
jQuery表格排序组件-tablesorter使用示例
2014/05/26 Javascript
javascript三元运算符用法实例
2015/04/16 Javascript
javascript常用方法总结
2015/05/14 Javascript
超漂亮的jQuery图片轮播特效
2015/11/24 Javascript
纯原生js实现贪吃蛇游戏
2020/04/16 Javascript
微信小程序利用co处理异步流程的方法教程
2017/05/20 Javascript
ES6 javascript中Class类继承用法实例详解
2017/10/30 Javascript
js闭包学习心得总结
2018/04/17 Javascript
2019最新21个MySQL高频面试题介绍
2020/02/06 Javascript
vue 动态创建组件的两种方法
2020/12/31 Vue.js
[40:01]OG vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
Python yield使用方法示例
2013/12/04 Python
python使用marshal模块序列化实例
2014/09/25 Python
python解析xml文件实例分析
2015/05/27 Python
python实现求解列表中元素的排列和组合问题
2018/03/15 Python
python实现简单遗传算法
2018/03/19 Python
利用python如何处理百万条数据(适用java新手)
2018/06/06 Python
pycharm 实现显示project 选项卡的方法
2019/01/17 Python
详解python 3.6 安装json 模块(simplejson)
2019/04/02 Python
python实现把二维列表变为一维列表的方法分析
2019/10/08 Python
python 导入数据及作图的实现
2019/12/03 Python
使用Python文件读写,自定义分隔符(custom delimiter)
2020/07/05 Python
详解Pandas 处理缺失值指令大全
2020/07/30 Python
HTML5边玩边学(3)像素和颜色
2010/09/21 HTML / CSS
优秀驾驶员先进事迹材料
2014/05/04 职场文书
银行爱岗敬业演讲稿
2014/05/05 职场文书
Go gorilla/sessions库安装使用
2022/08/14 Golang