jquery简单的拖动效果实现原理及示例


Posted in Javascript onJuly 26, 2013
<!DOCTYPE html> 
<html> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>简单拖?鲈?硎道?lt;/title> 
<style type="text/css"> 
#drag{width:400px;height:300px;background:url(http://upload.yxgz.cn/uploadfile/2009/0513/20090513052611873.jpg);cursor:move;position:absolute;top:100px;left:100px;border:solid 1px #ccc;} 
h2{color:#fff;background: none repeat scroll 0 0 rgba(16, 90, 31, 0.7);color:#FFFFFF;height:40px;line-height:40px;margin:0;} 
</style> 
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" type="text/javascript"></script> 
<script type="text/javascript"> 
$(function(){ 
/*--------------拖曳效果---------------- 
*原理:标记拖曳状态dragging ,坐标位置iX, iY 
* mousedown:fn(){dragging = true, 记录起始坐标位置,设置鼠标捕获} 
* mouseover:fn(){判断如果dragging = true, 则当前坐标位置 - 记录起始坐标位置,绝对定位的元素获得差值} 
* mouseup:fn(){dragging = false, 释放鼠标捕获,防止冒泡} 
*/ 
var dragging = false; 
var iX, iY; 
$("#drag").mousedown(function(e) { 
dragging = true; 
iX = e.clientX - this.offsetLeft; 
iY = e.clientY - this.offsetTop; 
this.setCapture && this.setCapture(); 
return false; 
}); 
document.onmousemove = function(e) { 
if (dragging) { 
var e = e || window.event; 
var oX = e.clientX - iX; 
var oY = e.clientY - iY; 
$("#drag").css({"left":oX + "px", "top":oY + "px"}); 
return false; 
} 
}; 
$(document).mouseup(function(e) { 
dragging = false; 
$("#drag")[0].releaseCapture(); 
e.cancelBubble = true; 
}) }) 
</script> 
</head> 
<body> 
<div id="drag"> 
<h2>来拖动我啊</h2> 
</div> 
</body> 
</html>
Javascript 相关文章推荐
一段效率很高的for循环语句使用方法
Aug 13 Javascript
js获取时间(本周、本季度、本月..)
Nov 22 Javascript
jQuery中animate用法实例分析
Mar 09 Javascript
Bootstrap教程JS插件滚动监听学习笔记分享
May 18 Javascript
详细总结Javascript中的焦点管理
Sep 17 Javascript
谈谈target=_new和_blank的不同之处
Oct 25 Javascript
jQuery实现元素的插入
Feb 27 Javascript
Vue Transition实现类原生组件跳转过渡动画的示例
Aug 19 Javascript
vue实现仿淘宝结账页面实例代码
Nov 08 Javascript
详解Webpack-dev-server的proxy用法
Sep 08 Javascript
利用JS动态生成隔行换色HTML表格的两种方法
Oct 09 Javascript
vant自定义二级菜单操作
Nov 02 Javascript
js监听键盘事件示例代码
Jul 26 #Javascript
jQuery的控件及事件(输入控件及回车事件)使用示例
Jul 25 #Javascript
固定表格行列(expression)在IE下适用
Jul 25 #Javascript
JavaScript字符串插入、删除、替换函数使用示例
Jul 25 #Javascript
不使用浏览器运行javascript代码的方法
Jul 24 #Javascript
js展开闭合效果演示代码
Jul 24 #Javascript
火狐textarea输入法的bug的触发及解决
Jul 24 #Javascript
You might like
PHP输出时间差函数代码
2013/01/28 PHP
用php和jQuery来实现“顶”和“踩”的投票功能
2016/10/13 PHP
PHP7变量处理机制修改
2021/03/09 PHP
node.js chat程序如何实现Ajax long-polling长链接刷新模式
2012/03/13 Javascript
文本框输入时 实现自动提示(像百度、google一样)
2012/04/05 Javascript
jQuery的选择器中的通配符使用介绍
2014/03/20 Javascript
js基于cookie记录来宾姓名的方法
2016/07/19 Javascript
jQuery页面弹出框实现文件上传
2017/02/09 Javascript
基于JS对象创建常用方式及原理分析
2017/06/28 Javascript
nodejs简单实现TCP服务器端和客户端的聊天功能示例
2018/01/04 NodeJs
javascript中的event loop事件循环详解
2018/12/14 Javascript
layui 对弹窗 form表单赋值的实现方法
2019/09/04 Javascript
JavaScript定时器使用方法详解
2020/03/26 Javascript
vue3.0+vue-router+element-plus初实践
2020/12/02 Vue.js
vue 在单页面应用里使用二级套嵌路由
2020/12/19 Vue.js
Vue如何实现变量表达式选择器
2021/02/18 Vue.js
[46:14]VGJ.T vs Liquid 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
Python运行的17个时新手常见错误小结
2012/08/07 Python
python制作企业邮箱的爆破脚本
2016/10/05 Python
python判断一个集合是否为另一个集合的子集方法
2018/05/04 Python
python使用BeautifulSoup与正则表达式爬取时光网不同地区top100电影并对比
2019/04/15 Python
python selenium实现发送带附件的邮件代码实例
2019/12/10 Python
python批量生成身份证号到Excel的两种方法实例
2021/01/14 Python
Python实现邮件发送的详细设置方法(遇到问题)
2021/01/18 Python
英国第一摩托车和摩托车越野配件商店:GhostBikes
2019/03/10 全球购物
澳大利亚在线家具店:Luxo Living
2019/03/24 全球购物
Java TransactionAPI (JTA) 主要包含几部分
2012/12/07 面试题
.NET remoting中对象激活的两种方式
2015/06/08 面试题
Discard Protocol抛弃协议的作用是什么
2015/10/10 面试题
Linux中如何用命令创建目录
2015/01/12 面试题
有针对性的求职自荐信
2013/11/14 职场文书
股权投资意向书
2014/04/01 职场文书
法院个人总结
2015/03/03 职场文书
学校就业保障协议书
2019/06/24 职场文书
详解jQuery的核心函数和事件处理
2022/02/18 jQuery
游戏《铁拳》动画化!2022年年内播出
2022/03/21 日漫