拖拽窗口的实现-JQuery实现;
主要是距离的掌握

如图,原始位置和当前位置。
对于当前位置:想要求得left值b',需要b'=a'-c;
其中,a’= ev.pageX;就是指针当前距离文档左边的距离;
同时,可以发现c在拖拽过程中是不会变的。因此求c,可以用初始位置来求;
对于初始位置:
c = a-b;
其中,a=ev.pageX;
b= $(this).offset().left; //offset获取匹配元素在当前视口的相对偏移。返回的对象包含两个整型属性:top 和
left,以像素计。此方法只对可见元素有效;
总结:
首先对div1添加mousedown事件,
mousedown事件中再添加mousemove事件,
mousemove事件中更新left,top值;
添加mouseup事件,用$(document).off()来解除事件;
完整代码:
$(function(){
var disX = 0;
var disY = 0;
$('div').mousedown(function(ev){
disX = ev.pageX - $(this).offset().left;//求出鼠标距离拖拽的div左边框的距离;
disY = ev.pageY - $(this).offset().top;
//offset获取匹配元素在当前视口的相对偏移。返回的对象包含两个整型属性:top 和
//left,以像素计。此方法只对可见元素有效。
//pageX鼠标相对于文档的左边缘的位置。
$(document).mousemove(function(ev){
$('div').css('left',ev.pageX - disX);
$('div').css('top',ev.pageY - disY);
});
$(document).mouseup(function(){
$(document).off();
});
return false;
});
});
拖拽—JQuery
拖拽窗口的实现-JQuery实现;的更多相关文章
- WPF禁止拖拽窗口到边缘自动最大化
近期有个需求,可以通过拖拽改变窗口大小,但是不允许窗口最大化.最小化.拖到边缘的时候也不能自动最大化. 要想禁止拖拽窗口到边缘自动最大化,只要改注册表即可,但是系统所有应用都会被禁止. 1.运行reg ...
- ztree插件的使用及列表项拖拽的实现(jQuery)+异步加载节点数据
为了实现如图所示的树状结构图,并使列表项可拖动到盒子里,研究了ztree这个插件的使用,并仔细研究了列表项的拖动事件.完成了预期需求,对jQuery的运用得到了提高.这个插件的功能非常强大,除了基本的 ...
- javascript--鼠标拖拽窗口案例(鼠标按下,在鼠标移动过程中,盒子跟着一起移动,鼠标松开,盒子停止移动)
界面如图所示: 要求:在“信息注册”栏,按下鼠标,然后鼠标在页面移动,在鼠标移动过程中,该窗口跟着鼠标移动,当鼠标松开的时候,窗口停止移动.点击“关闭”,该窗口隐藏. 实现思路: 1.页面结构分析:一 ...
- 针对后台列表table拖拽比较实用的jquery拖动排序
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&qu ...
- 解决direct2d拖拽窗口闪烁
响应WM_ERASEBKGND,在OnEraseBkgnd()处返回FALSE,阻止GDI重绘客户区背景色,设置背景色的工作交给Direct2D在Render时设置,否则在Resize时会出现窗口闪烁 ...
- JAVA GUI学习 - JInternalFrame浮动窗口:可拖拽窗口(依赖于父窗口)
public class JInternalFrameKnow extends JInternalFrame { public JInternalFrameKnow() { this.setBound ...
- jQuery的DOM操作实例(2)——拖拽效果&&拓展插件
一.原生JavaScript编写拖拽效果 二.jQuery编写的拖拽效果 三.在jQuery中拓展一个拖拽插件
- nw.js FrameLess Window下的窗口拖拽与窗口大小控制
nw.js FrameLess Window下的窗口拖拽与窗口大小控制 很多时候,我们觉得系统的Frame框很难看,于是想自定义. 自定义Frame的第一步是在package.config文件中将fr ...
- QT笔记之自定义窗口拖拽移动
1.QT自定义标题栏,拖拽标题栏移动窗口(只能拖拽标题,其他位置无法拖拽) 方法一: 转载:http://blog.sina.com.cn/s/blog_4ba5b45e0102e83h.html . ...
随机推荐
- Centos6.5下DHCP服务器的安装和配置
1.首先需要安装DHCP的软件包,使用yum进行安装 # yum install -y dhcp.x86_64 dhcp-devel.x86_64 2.将/usr/share/doc/dhcp-4. ...
- django 表单系统 之 forms.Form
继承forms.Form实现django表单系统 参考: https://www.cnblogs.com/zongfa/p/7709639.html https://www.cnblogs.com/c ...
- Tomcat Server
Tomcat Server的组成部分: 站在框架的顶层的是Server和ServiceServer:servletcontainer Service:Service是这样一个集合:它由一个或者多个Co ...
- tarball源码安装
软件最原始的安装方法 用tarball来安装升级make命令执行make ,会在当前路径下搜索makefile这个文本文件,这个文件中记录了源码如何编译的详细信息.软件开发商通常会写一个检测程序,检测 ...
- python的初识
解释型语言 和编译型语言 计算机本身不能识别高级语言,当我们运行一个程序的时候,需要一个“翻译” 来把 高级语言转换成计算机能读懂的语言. “翻译”过程分两种: 编译 编译型语言在执行程序前,首先会通 ...
- Java泛型一:基本介绍和使用
原文地址http://blog.csdn.net/lonelyroamer/article/details/7864531 现在开始深入学习java的泛型了,以前一直只是在集合中简单的使用泛型,根本就 ...
- jQuery文档节点处理,克隆,each循环,动画效果,插件
文档节点处理 //创建一个标签对象 $("<p>") //内部插入 $("").append(content|fn) ----->$(&quo ...
- How to make TWebBrowser get focus in Delphi
How to make TWebBrowser get focus in Delphi Written by Administrator Tags: Delphi Twebbrowse ...
- master: Error: JAVA_HOME is not set and could not be found.问题解决
- shell中的调试与计算
shell 计算 2.正确方法 1)使用let var=1 let "var+=1" echo $var 输出结果为2,这次没有悲剧 注意: a)经我 ...