js实现div色块拖动录制


Posted in Javascript onJanuary 16, 2020

本文实例为大家分享了js实现div色块拖动录制的具体代码,供大家参考,具体内容如下

描述:

实现一个div50*50的色块,拖动它生成一个轨迹,松手后,这个div会重复你刚才拖动的这个路径。

效果:

js实现div色块拖动录制

js实现div色块拖动录制

代码:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
  <style>
    div
    {
      width: 50px;
      height: 50px;
      background-color: deepskyblue;
      position: absolute;
      border: 2px solid #656565;
    }
  </style>
  <script src="js/Method.js"></script>
</head>
<body>
<div></div>
  <script>
    var elem;
    var state=0;//当前的状态 初始0——拖动录制1——回放2
    var arr=[];//存放我们的行走路径的 数组
    var list=[];//存放我们的行走路径的 数组
 
    var index=0;
    init();
    function init() {
      elem=document.querySelector("div");
      Method.dragElem(elem);
      elem.addEventListener("mousedown",mouseHandler);
      elem.addEventListener("mouseup",mouseHandler);
      setInterval(animation,16);
    }
 
    function mouseHandler(e) {//当前的状态 初始0——拖动录制1——回放2
      if(e.type==="mousedown"){//鼠标按下
        state=1;
      }else if(e.type==="mouseup"){//鼠标抬起
        createElemShadow();
        state=2;
      }
    }
 
    function createElemShadow() {
      var bool=false;
      if(list.length===0) bool=true;
      for(var i=0;i<5;i++){
        if(bool)list.push(elem.cloneNode(false));
        list[i].style.opacity=1-i*0.2;
        document.body.appendChild(list[i])
      }
    }
    
    function animation() {
      if(!state) return;
      if(state===1){
        record();
      }else if(state===2){
        play();
      }
    }
    
    function record() {
      var rect=elem.getBoundingClientRect();
      arr.push({x:rect.x,y:rect.y});
    }
    
    
    function play() {
     /* if(index>=arr.length-1){
        state=0;
        return;
      }*/
      index++;
      var point=arr[index];
      if(point){
        elem.style.left=point.x+"px";
        elem.style.top=point.y+"px";
        elem.style.backgroundColor=Method.divColor();
      }
      var bool=false;
      for(var i=0;i<list.length;i++){
        if(!arr[index-i*2]) continue;
        list[i].style.left=arr[index-i*2].x+"px";
        list[i].style.top=arr[index-i*2].y+"px";
        list[i].style.backgroundColor=Method.divColor();
        bool=true;
      }
      if(!bool){
        state=0;
        for(var j=0;j<list.length;j++){
          list[j].remove();
        }
      }
    }
  </script>
</body>
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
改版了网上的一个js操作userdata
Apr 27 Javascript
仿迅雷焦点广告效果(JQuery版)
Nov 19 Javascript
关于 文本框默认值 的操作js代码
Jan 12 Javascript
js获取数组的最后一个元素
Apr 14 Javascript
jquery实现漫天雪花飞舞的圣诞祝福雪花效果代码分享
Aug 20 Javascript
JS实现的表格操作类详解(添加,删除,排序,上移,下移)
Dec 22 Javascript
js将json格式的对象拼接成复杂的url参数方法
May 25 Javascript
Javascript闭包与函数柯里化浅析
Jun 22 Javascript
JavaScript调试的多个必备小Tips
Jan 15 Javascript
Node.js事件的正确使用方法
Apr 05 Javascript
javascript设计模式 ? 适配器模式原理与应用实例分析
Apr 13 Javascript
Vue和Flask通信的实现
May 19 Vue.js
微信小程序实现二维码签到考勤系统
Jan 16 #Javascript
解决vue+ element ui 表单验证有值但验证失败问题
Jan 16 #Javascript
JavaScript实现简单的计算器
Jan 16 #Javascript
js面向对象之实现淘宝放大镜
Jan 15 #Javascript
js实现简单的打印表格
Jan 15 #Javascript
js实现图片实时时钟
Jan 15 #Javascript
js实现中文实时时钟
Jan 15 #Javascript
You might like
简单的php写入数据库类代码分享
2011/07/26 PHP
php+ajax做仿百度搜索下拉自动提示框(有实例)
2012/08/21 PHP
PHP 登录完成后如何跳转上一访问页面
2014/01/14 PHP
PHP实现的猴王算法(猴子选大王)示例
2018/04/30 PHP
tp5(thinkPHP5框架)captcha验证码配置及验证操作示例
2019/05/28 PHP
设定php简写功能的方法
2019/11/28 PHP
jquery限定文本框只能输入数字即整数和小数
2013/11/29 Javascript
浅谈 javascript 事件处理
2015/01/04 Javascript
jQuery实现带动画效果的二级下拉导航方法
2015/03/11 Javascript
使用AngularJS创建自定义的过滤器的方法
2015/06/18 Javascript
基于jQuery实现仿百度首页换肤背景图片切换代码
2015/08/25 Javascript
jquery实现通用的内容渐显Tab选项卡效果
2015/09/07 Javascript
jQuery简单实现title提示效果示例
2016/08/01 Javascript
详解Vue-cli 创建的项目如何跨域请求
2017/05/18 Javascript
JavaScript中使用参数个数实现重载功能
2017/09/01 Javascript
javaScript之split与join的区别(详解)
2017/11/08 Javascript
微信小程序实现点击按钮修改view标签背景颜色功能示例【附demo源码下载】
2017/12/06 Javascript
vuejs 制作背景淡入淡出切换动画的实例
2018/09/01 Javascript
vue-admin-template配置快捷导航的代码(标签导航栏)
2020/09/04 Javascript
用JavaScript实现贪吃蛇游戏
2020/10/23 Javascript
Python实现图片尺寸缩放脚本
2018/03/10 Python
Python并发之多进程的方法实例代码
2018/08/15 Python
python web自制框架之接受url传递过来的参数实例
2018/12/17 Python
Python 实现两个服务器之间文件的上传方法
2019/02/13 Python
python查看文件大小和文件夹内容的方法
2019/07/08 Python
pytorch使用指定GPU训练的实例
2019/08/19 Python
基于Numba提高python运行效率过程解析
2020/03/02 Python
具有防紫外线功能的高性能钓鱼服装:Hook&Tackle
2018/08/16 全球购物
The North Face北面美国官网:美国著名户外品牌
2018/09/15 全球购物
生产车间主管岗位职责
2013/12/28 职场文书
大学生两会精神学习心得体会
2014/03/10 职场文书
公司租房协议书
2014/10/14 职场文书
2014年城管个人工作总结
2014/12/08 职场文书
员工工作能力评语
2014/12/31 职场文书
pytorch实现手写数字图片识别
2021/05/20 Python
V Rising 服务器搭建图文教程
2022/06/16 Servers