基于jquery完美拖拽,可返回拖动轨迹


Posted in Javascript onMarch 29, 2012
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>完美拖拽</title> 
<style type="text/css"> 
html, body { 
overflow:hidden; 
} 
body, div, h2, p { 
margin:0; 
padding:0; 
} 
body { 
color:#fff; 
background:#000; 
font:12px/2 Arial; 
} 
p { 
padding:0 10px; 
margin-top:10px; 
} 
span { 
color:#ff0; 
padding-left:5px; 
} 
#box { 
position:absolute; 
width:300px; 
height:150px; 
background:#333; 
border:2px solid #ccc; 
top:150px; 
left:400px; 
margin:0; 
} 
#box h2 { 
height:25px; 
cursor:move; 
background:#222; 
border-bottom:2px solid #ccc; 
text-align:right; 
padding:0 10px; 
} 
#box h2 a { 
color:#fff; 
font:12px/25px Arial; 
text-decoration:none; 
outline:none; 
} 
</style> 
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script> 
<script type="text/javascript"> 
$(function(){ 
var bDrag = false; 
var _x,_y; 
var $box=$("#box") 
var aPos = [{ 
x: $("#box").offset().left, 
y: $("#box").offset().top 
}]; 
$("span:eq(1)").text(aPos[0].y); 
$("span:eq(2)").text(aPos[0].x); 
$("#box h2:first").mousedown(function(event){ 
var e=event || window.event; 
bDrag = true; 
_x=e.pageX-$box.position().left; 
_y=e.pageY-$box.position().top; 
return false 
}) 
$(document).mousemove(function(event){ 
if(!bDrag) return false; 
var e=event || window.event; 
var x=e.pageX-_x; 
var y=e.pageY-_y; 
var maxL = $(document).width() - $box.outerWidth(); 
var maxT = $(document).height() - $box.outerHeight(); 
x = x < 0 ? 0: x; 
x = x > maxL ? maxL: x; 
y = y < 0 ? 0: y; 
y = y > maxT ? maxT: y; 
$box.css({left:x,top:y}); 
aPos.push({ 
x: x, 
y: y 
}); 
status() 
return false 
}).mouseup(function(){ 
bDrag = false; 
status() 
return false 
}) 
$("#box h2:first a").click(function(){ 
if (aPos.length == 1) return; 
var timer = setInterval(function() { 
var oPos = aPos.pop(); 
oPos ? ($box.css({left : oPos.x + "px", top : oPos.y + "px"})) : clearInterval(timer) 
status(); 
},30); 
}).mousedown(function(){return false}) 
function status() { 
$("#box span:eq(0)").text(bDrag); 
$("#box span:eq(1)").text($box.position().top); 
$("#box span:eq(2)").text($box.position().left); 
} 
status() 
}) 
</script> 
</head> 
<body> 
<div id="box"> 
<h2><a href="javascript:;">点击回放拖动轨迹</a></h2> 
<p><strong>Drag:</strong><span></span></p> 
<p><strong>top:</strong><span></span></p> 
<p><strong>left:</strong><span></span></p> 
</div> 
</body> 
</html>
Javascript 相关文章推荐
JS执行删除前的判断代码
Feb 18 Javascript
javascript正则表达式基础知识入门
Apr 20 Javascript
javascript实现简单的页面右下角提示信息框
Jul 31 Javascript
基于jquery实现select选择框内容左右移动添加删除代码分享
Aug 25 Javascript
Bootstrap入门书籍之(零)Bootstrap简介
Feb 17 Javascript
Node.js模块封装及使用方法
Mar 06 Javascript
Jquery元素追加和删除的实现方法
May 24 Javascript
BootStrap 智能表单实战系列(五) 表单依赖插件处理
Jun 13 Javascript
防止Node.js中错误导致进程阻塞的办法
Aug 11 Javascript
JS中检测数据类型的几种方式及优缺点小结
Dec 12 Javascript
js以及jquery实现手风琴效果
Apr 17 Javascript
纯JS实现可用于页码更换的飞页特效示例
May 21 Javascript
Javascript面向对象扩展库代码分享
Mar 27 #Javascript
用Javascript实现Windows任务管理器的代码
Mar 27 #Javascript
推荐30个新鲜出炉的精美 jQuery 效果
Mar 26 #Javascript
获取服务器传来的数据 用JS去空格的正则表达式
Mar 26 #Javascript
jquery星级插件、支持页面中多次使用
Mar 25 #Javascript
JQuery实现倒计时按钮的实现代码
Mar 23 #Javascript
JQuery防止退格键网页后退的实现代码
Mar 23 #Javascript
You might like
使用PHP会话(Session)实现用户登陆功能
2013/06/29 PHP
PHP实现简单数字分页效果
2015/07/26 PHP
php实现登录tplink WR882N获取IP和重启的方法
2016/07/20 PHP
PHPCMS忘记后台密码的解决办法
2016/10/30 PHP
PHP实现添加购物车功能
2017/03/06 PHP
获取客户端网卡MAC地址和IP地址实现JS代码
2013/03/17 Javascript
jquery中animate动画积累的解决方法
2013/10/05 Javascript
JavaScript 开发工具webstrom使用指南
2014/12/09 Javascript
原生javascript实现Tab选项卡切换功能
2015/01/12 Javascript
简述AngularJS的控制器的使用
2015/06/16 Javascript
完美解决jQuery符号$与其他javascript 库、框架冲突的问题
2016/08/09 Javascript
JavaScript 数组的深度复制解析
2016/11/02 Javascript
js 原型对象和原型链理解
2017/02/09 Javascript
video.js使用改变ui过程
2017/03/05 Javascript
详解用webpack2.0构建vue2.0超详细精简版
2017/04/05 Javascript
深入理解React Native原生模块与JS模块通信的几种方式
2017/07/24 Javascript
D3.js的基础部分之数组的处理数组的排序和求值(v3版本)
2019/05/09 Javascript
Node.js中console.log()输出彩色字体的方法示例
2019/12/01 Javascript
vue 解决在微信内置浏览器中调用支付宝支付的情况
2020/11/09 Javascript
vue+iview实现文件上传
2020/11/17 Vue.js
python中列表元素连接方法join用法实例
2015/04/07 Python
Python中的高级函数map/reduce使用实例
2015/04/13 Python
Python数据结构与算法之图的基本实现及迭代器实例详解
2017/12/12 Python
使用Python中的reduce()函数求积的实例
2019/06/28 Python
python通过SSH登陆linux并操作的实现
2019/10/10 Python
纯css3实现照片墙效果
2014/12/26 HTML / CSS
通过HTML5 Canvas API绘制弧线和圆形的教程
2016/03/14 HTML / CSS
匡威意大利官方商店 :Converse意大利
2018/11/27 全球购物
铭万公司.net面试题笔试题
2014/07/20 面试题
介绍一下write命令
2012/09/24 面试题
物理专业大学生职业生涯规划书
2014/02/07 职场文书
经济信息系毕业生自荐信范文
2014/03/15 职场文书
房地产公司见习自我鉴定
2014/04/28 职场文书
铣工实训报告
2014/11/05 职场文书
大班上学期个人总结
2015/02/13 职场文书
python编写函数注意事项总结
2021/03/29 Python