拖拽的面向对象

一、面向对象的思路与代码步骤:
···
function Drg(box4){ (Drg是一个构造函数,box4是一个参数)
this.ele=document.getElementById(box4)
var self = this; (保留这个this.ele的值)
this.ele.onmousedown=function(e){ (鼠标点击的函数事件)
self.start(e);
}

        this.start=function(e){                                                 
            
         e.preventDefault()        
           var t = e.clientX-this.ele.offsetLeft;
           var y = e.clientY-this.ele.offsetTop;
           document.onmousemove=function(e){             (点击的时候要调用move的这个功能)
           self.move(e,t,y)
           }
        } 
        
        this.move=function(e,t,y){
                
               this.ele.style.left = e.clientX-t + "px"
               this.ele.style.top = e.clientY-y + "px"
            //   console.log(e.clientX,e.clientY)
        }
        this.stop=function(){  当鼠标松开的时候,要将移动事件清除)
        
             document.onmousemove=null
        }        
        
        this.ele.onmouseup=function(){
                self.stop()
        }
            
    }

总结:经过面向过程与面向对象的学习,我觉得面向过程好理解一些,面向对象中的this
很容易混淆,面向过程与面向对象的代码差不多,思路不一样,有时候听课听着就不知道this到底在哪里,到底指什么,有时候单学知识点能懂,但是运用起来就乱了

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、实现过程 拖拽的面向对象实现和面向过程实现的基本方法是一样的,只是采用的是两种不同的思路,一个是面向对象的思路...
    银河战舰_cc3f阅读 2,454评论 1 1
  • 工厂模式类似于现实生活中的工厂可以产生大量相似的商品,去做同样的事情,实现同样的效果;这时候需要使用工厂模式。简单...
    舟渔行舟阅读 12,383评论 2 17
  • 什么是事件: 我们可以简单的把事件理解为浏览器的感知系统。比如说:他可以感觉到用户是否点击(click)了页面、鼠...
    张松1366阅读 11,792评论 1 6
  • 单例模式 适用场景:可能会在场景中使用到对象,但只有一个实例,加载时并不主动创建,需要时才创建 最常见的单例模式,...
    Obeing阅读 6,370评论 1 10
  • 第一部分 准入训练 第1章 进入忍者世界 js开发人员通常使用js库来实现通用和可重用的功能。这些库需要简单易用,...
    如201608阅读 5,154评论 1 2