JS基于面向对象实现的拖拽功能示例


Posted in Javascript onDecember 20, 2016

本文实例讲述了JS基于面向对象实现的拖拽功能。分享给大家供大家参考,具体如下:

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<style>
#div1 {width:100px; height:100px; background:red; position:absolute;}
#div2 {width:100px; height:100px; background:yellow; position:absolute;}
</style>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script>
window.onload=function(){
  new Drag("div1");
  new Drag("div2");
}
function Drag(id)
{
  var _this=this;
  this.oDiv=document.getElementById(id);
  this.disX=0;
  this.disY=0;
  this.oDiv.onmousedown=function(ev){
    _this.fnDown(ev);
    return false;
  };
}
  Drag.prototype.fnDown=function(ev)
  {
    var _this=this;
    var oEvent=ev||event;
    this.disX=oEvent.clientX-this.oDiv.offsetLeft;
    this.disY=oEvent.clientY-this.oDiv.offsetTop;
    document.onmousemove=function(ev){
      _this.fnMove(ev);
    };
    document.onmouseup=function(){
      _this.fnUp();
    };
  };
  Drag.prototype.fnMove=function(ev)
  {
    var oEvent=ev||event;
    var l=oEvent.clientX-this.disX;
    var t=oEvent.clientY-this.disY;
    if(l<0)
    {
      l=0;
    }
    else if(l>document.documentElement.clientWidth-this.oDiv.offsetWidth)
    {
      l=document.documentElement.clientWidth-this.oDiv.offsetWidth;
    }
    if(t<0)
    {
      t=0;
    }
    else if(t>document.documentElement.clientHeight-this.oDiv.offsetHeight)
    {
      t=document.documentElement.clientHeight-this.oDiv.offsetHeight;
    }
    this.oDiv.style.left=l+'px';
    this.oDiv.style.top=t+'px';
  };
  Drag.prototype.fnUp=function()
  {
    document.onmousemove=null;
    document.onmouseup=null;
  };
</script>
</head>
<body>
<div id="div1"></div>
<div id="div2"></div>
</body>
</html>

继承

function LimitDrag(id){
  Drag.call(this,id); //继承属性
}
for(var i in Drag.prototype){
  LimitDrag.prototype[i]=Drag.prototype[i];
}

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
关于jquery性能最佳实践的讨论,与求教
Mar 30 Javascript
jquery scroll()区分横向纵向滚动条的方法
Apr 04 Javascript
jQuery操作元素css样式的三种方法
Jun 04 Javascript
iframe调用父页面函数示例详解
Jul 17 Javascript
javascript实现倒计时N秒后网页自动跳转代码
Dec 11 Javascript
简述AngularJS相关的一些编程思想
Jun 23 Javascript
JS判断是否长按某一键的方法
Mar 02 Javascript
深入理解jQuery之事件移除
Jun 02 Javascript
Node.js编写CLI的实例详解
May 17 Javascript
详解在vue-cli中使用路由
Sep 25 Javascript
Vue实现购物车场景下的应用
Nov 27 Javascript
使用layer.msg 时间设置不起作用的解决方法
Sep 12 Javascript
详解为Angular.js内置$http服务添加拦截器的方法
Dec 20 #Javascript
[Bootstrap-插件使用]Jcrop+fileinput组合实现头像上传功能实例代码
Dec 20 #Javascript
JS简单实现表格排序功能示例
Dec 20 #Javascript
深入了解JavaScript的逻辑运算符(与、或)
Dec 20 #Javascript
js定时器实例分享
Dec 20 #Javascript
BootStrap Table 获取同行不同列元素的方法
Dec 19 #Javascript
Jquery Easyui进度条组件Progress使用详解(8)
Mar 26 #Javascript
You might like
PHP分页函数代码(简单实用型)
2010/12/02 PHP
关于PHP模板Smarty的初级使用方法以及心得分享
2013/06/21 PHP
PHP检测移动设备类mobile detection使用实例
2014/04/14 PHP
PHP框架Laravel的小技巧两则
2015/02/10 PHP
PHP实现一维数组转二维数组的方法
2015/02/25 PHP
PHP封装的HttpClient类用法实例
2015/06/17 PHP
php获取微信共享收货地址的方法
2017/12/21 PHP
PHP7扩展开发之hello word实现方法详解
2018/01/15 PHP
PHP 应用容器化以及部署方法
2018/02/12 PHP
PHP5.0 TIDY_PARSE_FILE缓冲区溢出漏洞的解决方案
2018/10/14 PHP
Thinkphp5.0框架使用模型Model的获取器、修改器、软删除数据操作示例
2019/10/11 PHP
在thinkphp5.0路径中实现去除index.php的方式
2019/10/16 PHP
jQuery Ajax 全解析
2009/02/08 Javascript
JavaScript 页面坐标相关知识整理
2010/01/09 Javascript
在线引用最新jquery文件的实现方法
2016/08/26 Javascript
JavaScript对象创建模式实例汇总
2016/10/03 Javascript
angularjs 表单密码验证自定义指令实现代码
2016/10/27 Javascript
浅谈javascript中遇到的字符串对象处理
2016/11/18 Javascript
Angular4实现鼠标悬停3d倾斜效果
2017/10/25 Javascript
微信小程序 简易计算器实现代码实例
2019/09/02 Javascript
javascript设计模式 ? 单例模式原理与应用实例分析
2020/04/09 Javascript
[43:58]DOTA2-DPC中国联赛定级赛 LBZS vs SAG BO3第一场 1月8日
2021/03/11 DOTA
pyenv命令管理多个Python版本
2017/03/26 Python
python判断一个集合是否为另一个集合的子集方法
2018/05/04 Python
如何使用Python自动控制windows桌面
2019/07/11 Python
香港最新科技与优质家居产品购物网站:J SELECT
2018/08/21 全球购物
英国天然抗衰老护肤品品牌:Nakin Skin Care
2019/04/16 全球购物
师范毕业生自荐信
2013/10/17 职场文书
酒店销售主管岗位职责
2014/01/04 职场文书
高三英语教学反思
2014/01/13 职场文书
教师学习培训邀请函
2014/02/04 职场文书
二手房购房意向书范本
2014/04/01 职场文书
2015年高校教师个人工作总结
2015/05/25 职场文书
入团介绍人意见范文
2015/06/04 职场文书
css3 filter属性的使用简介
2021/03/31 HTML / CSS
分享Python异步爬取知乎热榜
2022/04/12 Python