jQuery拖拽div实现思路


Posted in Javascript onFebruary 19, 2014

思路是利用jquery的mousemove,mousedown,mouseup三个事件,定义两个相对位置,分别是

1、组件左上角与屏幕左上角的相对位置

2、鼠标所在坐标与组件左上角的相对位置。

具体函数如下:

.drag{ 
position:absolute; 
background:#0000CC; 
top:100px;left:200px; 
padding:0; 
}

$(document).ready(function(){ 
var move=false;//移动标记 
var _x,_y;//鼠标离控件左上角的相对位置 
$(".drag").mousedown(function(e){ 
move=true; 
_x=e.pageX-parseInt($(".drag").css("left")); 
_y=e.pageY-parseInt($(".drag").css("top")); 
}); 
$(document).mousemove(function(e){ 
if(move){ 
var x=e.pageX-_x;//控件左上角到屏幕左上角的相对位置 
var y=e.pageY-_y; 
$(".drag").css({"top":y,"left":x}); 
} 
}).mouseup(function(){ 
move=false; 
});

其中e.pageX,e.pageY为当前鼠标的横纵坐标。

大家自己动手试一下,思路就更加清晰了~

Javascript 相关文章推荐
MSN消息提示类
Sep 05 Javascript
关于Blog顶部的滚动导航条代码
Sep 25 Javascript
js资料prototype 属性
Mar 13 Javascript
jQuery插件 selectToSelect使用方法
Oct 02 Javascript
讲解JavaScript中for...in语句的使用方法
Jun 03 Javascript
javascript判断复选框是否选中的方法
Oct 16 Javascript
浅谈js使用in和hasOwnProperty获取对象属性的区别
Apr 27 Javascript
Vue.js 实现微信公众号菜单编辑器功能(一)
May 08 Javascript
JavaScript错误处理操作实例详解
Jan 04 Javascript
vue指令之表单控件绑定v-model v-model与v-bind结合使用
Apr 17 Javascript
使用微信SDK自定义分享的方法
Jul 03 Javascript
vue 使用axios 数据请求第三方插件的使用教程详解
Jul 05 Javascript
JQuery异步加载无限下拉框级联功能实现示例
Feb 19 #Javascript
调用DOM对象的focus使文本框获得焦点
Feb 19 #Javascript
让jQuery Mobile不显示讨厌loading界面的方法
Feb 19 #Javascript
javascript动态向网页中添加表格实现代码
Feb 19 #Javascript
javascript实现动态侧边栏代码
Feb 19 #Javascript
返回上一页并自动刷新的JavaScript代码
Feb 19 #Javascript
js实现的GridView即表头固定表体有滚动条且可滚动
Feb 19 #Javascript
You might like
PHP 面向对象实现代码
2009/11/11 PHP
PHP抓屏函数实现屏幕快照代码分享
2014/01/02 PHP
PHP保存session到memcache服务器的方法
2016/01/19 PHP
php策略模式简单示例分析【区别于工厂模式】
2019/09/25 PHP
jquery tools之tooltip
2009/07/25 Javascript
JavaScript 利用Cookie记录用户登录信息
2009/12/08 Javascript
AngularJS入门教程(一):静态模板
2014/12/06 Javascript
JavaScript使用cookie实现记住账号密码功能
2015/04/27 Javascript
基于JavaScript怎么实现让歌词滚动播放
2015/11/03 Javascript
解决jquery无法找到其他父级子集问题的方法
2016/05/10 Javascript
详解微信小程序中的页面代码中的模板的封装
2017/10/12 Javascript
vue实现自定义多选与单选的答题功能
2018/07/05 Javascript
jQuery+ajax实现批量删除功能完整示例
2019/06/06 jQuery
js实现div色块拖动录制
2020/01/16 Javascript
vue 实现tab切换保持数据状态
2020/07/21 Javascript
详谈vue中router-link和传统a链接的区别
2020/07/22 Javascript
原生js+css实现tab切换功能
2020/09/17 Javascript
[55:44]完美世界DOTA2联赛决赛 FTD vs Phoenix 第二场 11.08
2020/11/11 DOTA
python中from module import * 的一个坑
2014/07/20 Python
Python中asyncore的用法实例
2014/09/29 Python
Python自动化运维_文件内容差异对比分析
2017/12/13 Python
Windows系统下pycharm中的pip换源
2020/02/23 Python
django之从html页面表单获取输入的数据实例
2020/03/16 Python
python获取整个网页源码的方法
2020/08/03 Python
python按照list中字典的某key去重的示例代码
2020/10/13 Python
BeautifulSoup中find和find_all的使用详解
2020/12/07 Python
Selenium关闭INFO:CONSOLE提示的解决
2020/12/07 Python
原生canvas制作画图小工具的踩坑和爬坑
2020/06/09 HTML / CSS
GUESS德国官网:美国牛仔服装品牌
2017/02/14 全球购物
C#实现启动一个进程
2016/10/01 面试题
教师演讲稿大全
2014/05/16 职场文书
经管应届生求职信范文
2014/05/18 职场文书
关于读书的演讲稿300字
2014/08/27 职场文书
机关党员公开承诺书
2014/08/30 职场文书
2014大学生学生会工作总结
2014/12/19 职场文书
浅谈tf.train.Saver()与tf.train.import_meta_graph的要点
2021/05/26 Python