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 相关文章推荐
两个DIV等高的JS的实现代码
Dec 23 Javascript
utf-8编码引起js输出中文乱码的解决办法
Jun 23 Javascript
DIV菜单层实现代码
Nov 19 Javascript
解析js原生方法创建表格效率测试
Jul 08 Javascript
基于jquery和svg实现超炫酷的动画特效
Dec 09 Javascript
javascript原型链继承用法实例分析
Jan 28 Javascript
jQuery插件multiScroll实现全屏鼠标滚动切换页面特效
Apr 12 Javascript
基于Jquery制作图片文字排版预览效果附源码下载
Nov 18 Javascript
jquery.Jcrop结合JAVA后台实现图片裁剪上传实例
Nov 05 Javascript
浅谈webpack4.x 入门(一篇足矣)
Sep 05 Javascript
vue单页面实现当前页面刷新或跳转时提示保存
Nov 02 Javascript
如何在vue中使用百度地图添加自定义覆盖物(水波纹)
Nov 03 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文件去掉PHP注释空格的函数分析(PHP代码压缩)
2013/07/02 PHP
php微信开发接入
2016/08/27 PHP
TP5框架安全机制实例分析
2020/04/05 PHP
JTrackBar水平拖动效果
2007/07/15 Javascript
番茄的表单验证类代码修改版
2008/07/18 Javascript
jQuery Json数据格式排版高亮插件json-viewer.js使用方法详解
2017/06/12 jQuery
Vue组件化通讯的实例代码
2017/06/23 Javascript
详解Vue.js组件可复用性的混合(mixin)方式和自定义指令
2017/09/06 Javascript
js单线程的本质 Event Loop解析
2019/10/29 Javascript
Vue如何使用混合Mixins和插件开发详解
2020/02/05 Javascript
[05:01]3.19DOTA2发布会 我们都是刀塔人
2014/03/25 DOTA
通过python下载FTP上的文件夹的实现代码
2013/02/10 Python
Python的Django框架中自定义模版标签的示例
2015/07/20 Python
python 默认参数问题的陷阱
2016/02/29 Python
Python while 循环使用的简单实例
2016/06/08 Python
Python操作Access数据库基本步骤分析
2016/09/19 Python
Python实现Pig Latin小游戏实例代码
2018/02/02 Python
新手常见6种的python报错及解决方法
2018/03/09 Python
基于python实现的百度音乐下载器python pyqt改进版(附代码)
2019/08/05 Python
使用Matplotlib 绘制精美的数学图形例子
2019/12/13 Python
Python统计学一数据的概括性度量详解
2020/03/03 Python
python 日志 logging模块详细解析
2020/03/31 Python
keras topN显示,自编写代码案例
2020/07/03 Python
详解Scrapy Redis入门实战
2020/11/18 Python
matplotlib制作雷达图报错ValueError的实现
2021/01/05 Python
解决pytorch 数据类型报错的问题
2021/03/03 Python
使用Html5实现异步上传文件,支持跨域,带有上传进度条
2016/09/17 HTML / CSS
学生就业推荐信
2013/11/13 职场文书
优秀的毕业生的自我评价
2013/12/12 职场文书
毕业生自荐书
2014/02/02 职场文书
公益广告宣传方案
2014/02/28 职场文书
党的群众路线教育实践活动个人整改措施落实情况
2014/11/04 职场文书
防震减灾主题班会
2015/08/14 职场文书
离婚起诉书范文2016
2015/11/26 职场文书
销售会议开幕词
2016/03/04 职场文书
五年级作文之成长
2019/09/16 职场文书