javascript实现完美拖拽效果


Posted in Javascript onMay 06, 2015

拖拽的原理

1.获取距离(鼠标的位置-odiv的外边距)

2.理解什么时候用onmousemove事件

3.判断是否过界

html代码:

<div id="div1"></div>

css代码:

#div1{width:100px;height:100px;background:red;position:absolute}

javascript代码:

window.onload=function(){
  var oDiv=document.getElementById("div1");
  var x=0;
  var y=0;
  oDiv.onmousedown=function(ev){
    var oEvent=ev||event;
    //鼠标的横坐标减去div的offsetLeft
    x=oEvent.clientX-oDiv.offsetLeft;
    //鼠标的纵坐标减去div的offsetTop
    y=oEvent.clientY-oDiv.offsetTop; 
     
    document.onmousemove=function(ev){
      var oEvent=ev||event;   
      var left=oEvent.clientX-x;
      var right=oEvent.clientY-y;
      //判断左边是否过界
      if(left<0){
        left=0;
      }
      //判断右边是否过界
      else if(left>document.documentElement.clientWidth-oDiv.offsetWidth){
        left=document.documentElement.clientWidth-oDiv.offsetWidth;
      }
      //判断上边是否过界
      if(right<0){
        right=0;
      }
      //判断下边是否过界
      else if(right>document.documentElenment.clientHeight){
        right=document.documentElenment.clientHeight-oDiv.offsetHeight;
      }
      oDiv.style.left=left+"px";
      oDiv.style.top=right+"px";
    }   
    document.onmouseup=function(){
      //清空document的事件
      document.onmousemove=null;
      document.onmouseup=null;
    }
    //解决低版本火狐bug,干掉系统默认
    return false;
  }
}

以上所述就是本文的全部内容了,希望大家能够喜欢。

Javascript 相关文章推荐
IE6下JS动态设置图片src地址问题
Jan 08 Javascript
js 多浏览器分别判断代码
Apr 01 Javascript
Prototype源码浅析 String部分(三)之HTML字符串处理
Jan 15 Javascript
用JavaScript实现动画效果的方法
Jul 20 Javascript
js里取容器大小、定位、距离等属性搜集整理
Aug 19 Javascript
jquery快捷动态绑定键盘事件的操作函数代码
Oct 17 Javascript
关于js内存泄露的一个好例子
Dec 09 Javascript
浅析Javascript中“==”与“===”的区别
Dec 23 Javascript
vue中el-upload上传图片到七牛的示例代码
Oct 19 Javascript
vue实现跨域的方法分析
May 21 Javascript
详解Javascript实践中的命令模式
May 05 Javascript
ant design vue的form表单取值方法
Jun 01 Vue.js
avalonjs实现仿微博的图片拖动特效
May 06 #Javascript
avalonjs制作响应式瀑布流特效
May 06 #Javascript
javascript实现简单的html5视频播放器
May 06 #Javascript
js实现的四级左侧网站分类菜单实例
May 06 #Javascript
wangEditor编辑器失去焦点后仍然可以在原位置插入图片分析
May 06 #Javascript
完美实现仿QQ空间评论回复特效
May 06 #Javascript
jQuery实现鼠标单击网页文字后在文本框显示的方法
May 06 #Javascript
You might like
蝙蝠侠:侠影之谜
2020/03/04 欧美动漫
php URL跳转代码 减少外链
2011/06/25 PHP
关于php微信订阅号开发之token验证后自动发送消息给订阅号但是没有消息返回的问题
2015/12/21 PHP
CI框架(ajax分页,全选,反选,不选,批量删除)完整代码详解
2016/11/01 PHP
Laravel数据库读写分离配置的方法
2019/10/13 PHP
JavaScript学习笔记整理之引用类型
2016/01/22 Javascript
JQuery ztree 异步加载实例讲解
2016/02/25 Javascript
AngularJS模块详解及示例代码
2016/08/17 Javascript
jQuery select自动选中功能实现方法分析
2016/11/28 Javascript
微信小程序 判断手机号的实现代码
2017/04/19 Javascript
JS ES6中setTimeout函数的执行上下文示例
2017/04/27 Javascript
Angular模板表单校验方法详解
2017/08/11 Javascript
JS实现按钮添加背景音乐示例代码
2017/10/17 Javascript
Vue异步加载about组件
2017/10/31 Javascript
JavaScript forEach中return失效问题解决方案
2020/06/01 Javascript
python中实现延时回调普通函数示例代码
2017/09/08 Python
Python正则表达式匹配日期与时间的方法
2019/07/07 Python
PyQt 图解Qt Designer工具的使用方法
2019/08/06 Python
python爬虫 批量下载zabbix文档代码实例
2019/08/21 Python
使用Python完成15位18位身份证的互转功能
2019/11/06 Python
Python如何基于Tesseract实现识别文字功能
2020/06/05 Python
Python项目跨域问题解决方案
2020/06/22 Python
Django ORM判断查询结果是否为空,判断django中的orm为空实例
2020/07/09 Python
python实现自动清理重复文件
2020/08/24 Python
美国汽配连锁巨头Pep Boys官网:轮胎更换、汽车维修服务和汽车零部件
2017/01/14 全球购物
Crabtree & Evelyn欧盟:豪华洗浴、身体和护发
2021/03/09 全球购物
Windows和Linux动态库应用异同
2016/04/17 面试题
会计自我鉴定
2013/11/02 职场文书
医务人员自我评价
2014/01/26 职场文书
十八届三中全会报告学习材料
2014/02/17 职场文书
毕业生如何写自荐信
2014/03/26 职场文书
大学活动总结模板
2014/07/10 职场文书
夫妻房产协议书的格式
2014/10/11 职场文书
大学生自荐材料范文
2014/12/30 职场文书
超市员工管理制度
2015/08/06 职场文书
python 使用pandas读取csv文件的方法
2022/12/24 Python