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解析Json实例详解
Nov 24 Javascript
JavaScript快速切换繁体中文和简体中文的方法及网站支持简繁体切换的绝招
Mar 07 Javascript
Google 地图API Map()构造器详解
Aug 06 Javascript
JS常用函数和常用技巧小结
Oct 15 Javascript
AngularJS中的Promise详细介绍及实例代码
Dec 13 Javascript
JavaScript实现简单精致的图片左右无缝滚动效果
Mar 16 Javascript
vue页面切换到滚动页面显示顶部的实例
Mar 13 Javascript
layui获取选中行数据的实例讲解
Aug 19 Javascript
详解Vue中数组和对象更改后视图不刷新的问题
Sep 21 Javascript
jQuery实现倒计时功能完整示例
Jun 01 jQuery
element跨分页操作选择详解
Jun 29 Javascript
jQuery插件实现图片轮播效果
Oct 19 jQuery
详解为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
跟我学小偷程序之成功偷取首页(第三天)
2006/10/09 PHP
PHP使用Pear发送邮件(Windows环境)
2016/01/05 PHP
浅谈PHP安全防护之Web攻击
2017/01/03 PHP
PHP cookie与session会话基本用法实例分析
2019/11/18 PHP
javascript 必知必会之closure
2009/09/21 Javascript
JQuery困惑—包装集 DOM节点
2009/10/16 Javascript
javascript 导出数据到Excel(处理table中的元素)
2009/12/18 Javascript
JavaScript 面向对象的 私有成员和公开成员
2010/05/13 Javascript
JavaScript 里的类数组对象
2015/04/08 Javascript
JS实现仿Windows经典风格的选项卡Tab切换代码
2015/10/20 Javascript
jquery ui dialog替代confirm实例分析
2016/01/25 Javascript
JavaScript+html5 canvas实现本地截图教程
2020/04/16 Javascript
JS操作COOKIE实现备忘记录的方法
2016/04/01 Javascript
AngularJS中比较两个数组是否相同
2016/08/24 Javascript
Bootstrap实现提示框和弹出框效果
2017/01/11 Javascript
Bootstrap 表单验证formValidation 实现远程验证功能
2017/05/17 Javascript
解决ie img标签内存泄漏的问题
2017/10/13 Javascript
详解小程序如何避免多次点击,重复触发事件
2019/04/08 Javascript
layui字体图标 loading图标静止不旋转的解决方法
2019/09/23 Javascript
小程序使用wxs解决wxml保留2位小数问题
2019/12/13 Javascript
[02:11]完美世界DOTA2联赛10月28日赛事精彩集锦:来吧展示实力强劲
2020/10/29 DOTA
python字典多条件排序方法实例
2014/06/30 Python
利用Python的Django框架生成PDF文件的教程
2015/07/22 Python
Python实现句子翻译功能
2017/11/14 Python
python利用高阶函数实现剪枝函数
2018/03/20 Python
自适应线性神经网络Adaline的python实现详解
2019/09/30 Python
Html5新增标签有哪些
2017/04/13 HTML / CSS
英国时尚家具、家居饰品及礼品商店:Graham & Green
2016/09/15 全球购物
美国亚洲时尚和美容产品的一站式网上商店:Stylevana
2019/09/05 全球购物
如何客观的进行自我评价
2013/12/17 职场文书
小学生红领巾广播稿
2014/01/21 职场文书
护士节策划方案
2014/05/19 职场文书
高中班级口号
2014/06/09 职场文书
酒店总经理岗位职责范本
2014/08/08 职场文书
关于读书的演讲稿1000字
2014/08/27 职场文书
2019年销售人员的职业生涯规划书
2019/03/25 职场文书