js实现的简练高效拖拽功能示例


Posted in Javascript onDecember 21, 2016

本文实例讲述了js实现的简练高效拖拽功能。分享给大家供大家参考,具体如下:

运行效果图如下:

js实现的简练高效拖拽功能示例

具体代码如下:

<!DOCTYPE HTML>
<html>
<head>
 <meta http-equiv="content-type" charset="utf-8" />
  <meta http-equiv="content-type" content="text/html" />
  <title>demo</title>
</head>
<body>
<p>aaaaaaaaaaa</p>
<div id="one" style="height:100px;width:100px;background:red;position:absolute;"></div>
<script>
var odiv=document.getElementById("one");
dra(odiv);
function dra(obj){
  obj.onmousedown=function(e){
    var oe=e||window.event;
    var $this=this;
    var l=oe.clientX-$this.offsetLeft;
    var t=oe.clientY-$this.offsetTop;
    document.onmousemove=function(e){
      var oe=e||window.event;
      var ol=oe.clientX-l;
      var ot=oe.clientY-t;
      if(ol<0) ol=0;
      if(ot<0) ot=0;
      if(ot>document.documentElement.clientHeight-$this.offsetHeight) ot=document.documentElement.clientHeight-$this.offsetHeight;
      if(ol>document.documentElement.clientWidth-$this.offsetWidth) ol=document.documentElement.clientWidth-$this.offsetWidth;
      $this.style.left=ol+"px";
      $this.style.top=ot+"px";
    }
    document.onmouseup=function(){
      document.onmousemove=null;
      document.onmouseup=null;
      if($this.releaseCapture) $this.releaseCapture();
    }
    if($this.setCapture){
      $this.setCapture();
    }
    if(oe.preventDefault) oe.preventDefault();
    else oe.returnValue=false;
    return false;
  }
}
</script>
</body>
</html>

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

Javascript 相关文章推荐
HTML中事件触发列表与解说
Jul 09 Javascript
转自Jquery官方 jQuery1.1.3发布,速度提升800%,体积保持20K
Aug 19 Javascript
在JavaScript中判断整型的N种方法示例介绍
Jun 18 Javascript
完美兼容各大浏览器的jQuery插件实现图片切换特效
Dec 12 Javascript
js Calender控件使用详解
Jan 05 Javascript
JQuery插件Marquee.js实现无缝滚动效果
Apr 26 Javascript
webpack组织模块打包Library的原理及实现
Mar 10 Javascript
vue使用ajax获取后台数据进行显示的示例
Aug 09 Javascript
vue 实现input表单元素的disabled示例
Oct 28 Javascript
环形加载进度条封装(Vue插件版和原生js版)
Dec 04 Javascript
JavaScript Window浏览器对象模型原理解析
May 30 Javascript
vue使用echarts实现水平柱形图实例
Sep 09 Javascript
利用Bootstrap实现表格复选框checkbox全选
Dec 21 #Javascript
详解JavaScript的闭包、IIFE、apply、函数与对象
Dec 21 #Javascript
JS实现获取来自百度,Google,soso,sogou关键词的方法
Dec 21 #Javascript
JS定时器用法分析【时钟与菜单中的应用】
Dec 21 #Javascript
vue.js实现仿原生ios时间选择组件实例代码
Dec 21 #Javascript
详解jQuery的表单验证插件--Validation
Dec 21 #Javascript
JS无缝滚动效果实现方法分析
Dec 21 #Javascript
You might like
发布一个用PHP fsockopen写的HTTP下载的类
2007/02/22 PHP
木翼下载系统中说明的PHP安全配置方法
2007/06/16 PHP
一个php导出oracle库的php代码
2009/04/20 PHP
PHP fastcgi模式上传大文件(大约有300多K)报错
2014/09/28 PHP
浅析php适配器模式(Adapter)
2014/11/25 PHP
PHP-CGI远程代码执行漏洞分析与防范
2017/05/07 PHP
tp5框架内使用tp3.2分页的方法分析
2019/05/05 PHP
使一个函数作为另外一个函数的参数来运行的javascript代码
2007/08/13 Javascript
JQuery中$之选择器用法介绍
2011/04/05 Javascript
JQuery之拖拽插件实现代码
2011/04/14 Javascript
jquery mobile动态添加元素之后不能正确渲染解决方法说明
2014/03/05 Javascript
jQuery中outerWidth()方法用法实例
2015/01/19 Javascript
js+HTML5基于过滤器从摄像头中捕获视频的方法
2015/06/16 Javascript
详解在Vue中使用TypeScript的一些思考(实践)
2018/07/06 Javascript
layui插件表单验证提交触发提交的例子
2019/09/09 Javascript
vue 翻页组件vue-flip-page效果
2020/02/05 Javascript
vue 表单输入框不支持focus及blur事件的解决方案
2020/11/17 Vue.js
[05:08]2014DOTA2国际邀请赛 Hao专访复仇的胜利很爽
2014/07/15 DOTA
[01:19:54]DOTA2上海特级锦标赛主赛事日 - 2 败者组第二轮#1Alliance VS EHOME
2016/03/03 DOTA
python使用Queue在多个子进程间交换数据的方法
2015/04/18 Python
Python 使用os.remove删除文件夹时报错的解决方法
2017/01/13 Python
python利用正则表达式排除集合中字符的功能示例
2017/10/10 Python
对numpy中shape的深入理解
2018/06/15 Python
详解从Django Rest Framework响应中删除空字段
2019/01/11 Python
Django REST framework 分页的实现代码
2019/06/19 Python
python3.6 如何将list存入txt后再读出list的方法
2019/07/02 Python
关于Python中定制类的比较运算实例
2019/12/19 Python
Python Matplotlib简易教程(小白教程)
2020/07/28 Python
django 获取字段最大值,最新的记录操作
2020/08/09 Python
Python操作dict时避免出现KeyError的几种解决方法
2020/09/20 Python
Roxy俄罗斯官方网站:冲浪和滑雪板的一切
2020/06/20 全球购物
中软国际Java程序员机试题
2012/08/19 面试题
销售员个人求职的自我评价
2014/02/10 职场文书
土地租赁协议书
2015/01/29 职场文书
Vue中foreach数组与js中遍历数组的写法说明
2021/06/05 Vue.js