jquery-11 如何实现标签的鼠标拖动效果
jquery-11 如何实现标签的鼠标拖动效果
一、总结
一句话总结:核心原理:1、标签实现绝对定位,位置的话跟着鼠标走。2、点击标签的话,给标签绑定事件,停止按住鼠标的话,解除绑定的事件。
1、事件中的return false的作用是什么?
a、防止默认行为的发生
b、防止事件冒泡(一个div里面套一个img,你点click事件,先触发div的click,再穿过div触发img的click事件)
29 function start(event) {
30 deltaX=event.clientX-obj.offset().left;
31 deltaY=event.clientY-obj.offset().top;
32
33 $(document).bind("mousemove", move);
34 $(document).bind("mouseup", stop);
35
36 //阻止默认行为的发生
37 //阻止事件冒泡的发生
38 return false;
39 }
2、event对象如何产生和使用?
事件发生就有event对象,在事件的那个函数里面就可以使用event对象了,也可以把它作为参数传递给其它函数
传进去event对象的位置就可以return false来防止默认事情发生。
29 function start(event) {
30 deltaX=event.clientX-obj.offset().left;
31 deltaY=event.clientY-obj.offset().top;
3、如何实现标签的鼠标拖动效果?
首先给标签绑定鼠标按下事件,获取鼠标位置和标签左上角的差值,鼠标移动的时候给文档对象绑定mousemove事件,鼠标停止按动的时候就解除文档对象所有事件的绑定。
26 function drag(obj){
27 obj.bind("mousedown", start);
28
29 function start(event) {
30 deltaX=event.clientX-obj.offset().left;
31 deltaY=event.clientY-obj.offset().top;
32
33 $(document).bind("mousemove", move);
34 $(document).bind("mouseup", stop);
35
36 //阻止默认行为的发生
37 //阻止事件冒泡的发生
38 return false;
39 }
40
41 function move(event) {
42 obj.css({
43 "left":(event.clientX-deltaX)+"px",
44 "top":(event.clientY-deltaY)+"px"
45 })
46 return false;
47 }
48
49 function stop() {
50 $(document).unbind("mousemove", move);
51 $(document).unbind("mouseup", stop);
52 }
53 }
54
55 obj=$("#div1");
56 drag(obj);
4、js如何将标签对象传递给函数?
获取对象,然后作为参数传递给函数
55 obj=$("#div1");
56 drag(obj);
26 function drag(obj){
27 obj.bind("mousedown", start);
5、如何实现某个元素绑定某个事件的时候执行某个方法?
bind的第二个参数直接方法名,没加字符串,因为js中方法和变量只差一对括号
33 $(document).bind("mousemove", move);
41 function move(event) {
42 obj.css({
43 "left":(event.clientX-deltaX)+"px",
44 "top":(event.clientY-deltaY)+"px"
45 })
46 return false;
47 }
二、如何实现标签的鼠标拖动效果

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>index</title>
<style>
#div1{
position: absolute;
top:0px;
left:0px;
border-radius:256px;
width:256px;
height:256px;
background: #ccc;
overflow: hidden;
}
</style>
<script src="jquery.js"></script>
</head>
<body>
<div id="div1">
<img src="a.png">
</div>
</body>
<script>
function drag(obj){
obj.bind("mousedown", start); function start(event) {
deltaX=event.clientX-obj.offset().left;
deltaY=event.clientY-obj.offset().top; $(document).bind("mousemove", move);
$(document).bind("mouseup", stop); //阻止默认行为的发生
//阻止事件冒泡的发生
return false;
} function move(event) {
obj.css({
"left":(event.clientX-deltaX)+"px",
"top":(event.clientY-deltaY)+"px"
})
return false;
} function stop() {
$(document).unbind("mousemove", move);
$(document).unbind("mouseup", stop);
}
} obj=$("#div1");
drag(obj);
</script>
</html>
jquery-11 如何实现标签的鼠标拖动效果的更多相关文章
- Web的鼠标拖动效果
以前写过一个拖动效果的Demo,拖拽元素新位置的计算是放在拖拽元素的mousemove事件中进行的.计算效率差,而且效果不好.所以一直有想怎样才能做出jquery-ui那种顺滑的拖拽效果. 其实顺滑的 ...
- Javascript 简单实现鼠标拖动DIV
http://zhangbo-peipei-163-com.iteye.com/blog/1740078 比较精简的Javascript拖动效果函数代码 http://www.jb51.net/art ...
- jQuery实现鼠标拖动改变Div高度
最近项目中需要在DashBoard页面做一个事件通知栏,该通知栏固定位于页面底部,鼠标拖动该DIV实现自动改变高度扩展内容显示区域. 以下是一个设计原型,基于jQuery实现,只实现了拖动效果,没有做 ...
- jquery 鼠标拖动排序Li或Table
1.前端页面 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="拖动排序Li或Ta ...
- JavaScript 实现鼠标拖动元素
一.前言 最开始实现鼠标拖动元素的目的就是在一个页面上拖动很多小圆点,用于固定定位,然后在复制HTML,粘贴在页面的开发代码中,就是这么一个功能,实现了很多遍,都没有做好,不得已采用了jQuery.f ...
- 使用jQuery实现简单的拖动效果
转自:http://www.muzilei.com/archives/136 如何实现拖动效果? 浏览DEMO 首先分析下拖动效果原理: 1.当鼠标在被拖动对象上按下鼠标(触发onmousedown事 ...
- 用canvas实现鼠标拖动绘制矩形框
需要用到jCanvas插件和jQuery. jCanvas下载:https://raw.githubusercontent.com/caleb531/jcanvas/master/jcanvas.mi ...
- 使用jquery实现简单的拖动效果,分享源码
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAkEAAAERCAIAAADzAOSQAAALRklEQVR4nO3dW5LaaAKEUfa/NkfMGu
- jquery div拖动效果示例代码
div拖动效果想必大家都有见到过吧,实现的方法也是有很多的,下面为大家将介绍使用jquery是如何实现的,感兴趣的朋友不要错过 复制代码代码如下: <%@ page language=" ...
随机推荐
- 关于我遇到的“LNK 2019无法解析的外部符号”的链接错误
昨天在调试程序的时候出现了"LNK 2019无法解析的外部符号"的问题(VS2008),依照网上说的方法都没有解决这个问题,最后在项目文件里发现有两个同名的可是不在同一个目录下的c ...
- windows 2016 配置 VNC 服务
windows 2016 配置 VNC 服务 下载windows版 https://www.realvnc.com/download/vnc/ 安装时勾选 vncserver 进入 "C:\ ...
- Day4晚笔记
数据结构 并查集:捆绑两个点的信息,判断对错 倍增:LCA, 字符串 hash,模拟, 最小表示法 给定一个环状字符串,切开,使得字符串的字典序最小 图和树 割点,割边,强联通分量 点双联通分量 (把 ...
- 【arc062e】Building Cubes with AtCoDeer
Description STL有n块瓷砖,编号从1到n,并且将这个编号写在瓷砖的正中央: 瓷砖的四个角上分别有四种颜色(可能相等可能不相等),并且用Ci,0,Ci,1,Ci,2,Ci,3分别表示左上. ...
- Android Studio将Eclipse的项目作为module的依赖库
情形: 我们现在有一个eclipse的项目,我们想把这个项目作为android studio的module的一个依赖库. 以前我们在eclipse的时候常常是在一个工作区里面把一个A工程 as a l ...
- redhat6.5安装10201解决办法
rpm --import /etc/pki/rpm-gpg/RPM*yum install -y --skip-broken compat-libstdc++* elfutils-libelf* g ...
- Appium_Python_API
1) find_element_by_android_uiautomator (‘new UiSelector().text(“XXXX”)’).click 正常匹配2) find_element_b ...
- loadrunner监控apache服务
一.apache配置步骤(假设apache服务已安装) 1.使用find / -name httpd.conf命令查找httpd.conf文件 2.使用cd opt/lampp/apache2/con ...
- Mongodb总结1-启动和Shell脚本
2013年,还在秒针,当时听说了Mongodb,就学习了下,搞了下HelloWorld.主要是熟悉Mongodb的启动.命令行的Shell脚本.Java访问的CRUD. 今天,由于需要,再次回顾和进一 ...
- 调色板原理 & 编程
调色板原理 & 编程 逻辑调色板结构LOGPALETTE,该结构定义如下: typedef struct tagLOGPALETTE { WORD palVersion; //调色板的板本号, ...