基于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 相关文章推荐
如何做到打开一个页面,过几分钟自动转到另一页面
Apr 20 Javascript
javascript高亮效果的二种实现方法
Sep 14 Javascript
cookie 最近浏览记录(中文escape转码)具体实现
Jun 08 Javascript
细说javascript函数从函数的构成开始
Aug 29 Javascript
Firefox中使用outerHTML的2种解决方法
Jun 07 Javascript
jQuery EasyUI中的日期控件DateBox修改方法
Nov 09 Javascript
vuejs指令详解
Feb 07 Javascript
JS检测数组类型的方法小结
Mar 14 Javascript
bootstrap3使用bootstrap datetimepicker日期插件
May 24 Javascript
js中自定义react数据验证组件实例详解
Oct 19 Javascript
微信小程序遍历Echarts图表实现多个饼图
Apr 25 Javascript
vue-cli3.x配置全局的scss的时候报错问题及解决
Apr 30 Vue.js
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
模仿OSO的论坛(四)
2006/10/09 PHP
用PHP实现ODBC数据分页显示一例
2006/10/09 PHP
php的正则处理函数总结分析
2008/06/20 PHP
php echo()和print()、require()和include()函数区别说明
2010/03/27 PHP
php的POSIX 函数以及进程测试的深入分析
2013/06/03 PHP
js DOM 元素ID就是全局变量
2012/09/20 Javascript
js控制不同的时间段显示不同的css样式的实例代码
2013/11/04 Javascript
jQuery窗口、文档、网页各种高度的精确理解
2014/07/02 Javascript
jQuery插件imgPreviewQs实现上传图片预览
2016/01/15 Javascript
第六章之辅组类与响应式工具
2016/04/25 Javascript
深入理解Javascript中的作用域链和闭包
2017/04/25 Javascript
Node.js 8 中的 util.promisify的详解
2017/06/12 Javascript
详解mpvue小程序中怎么引入iconfont字体图标
2018/10/01 Javascript
Django+vue跨域问题解决的详细步骤
2019/01/20 Javascript
详解ES6中的Map与Set集合
2019/03/22 Javascript
微信小程序实现左滑动删除效果
2020/03/30 Javascript
vue项目中全局引入1个.scss文件的问题解决
2019/08/01 Javascript
基于javascript的无缝滚动动画实现2
2020/08/07 Javascript
在vue项目中 实现定义全局变量 全局函数操作
2020/10/26 Javascript
Python和php通信乱码问题解决方法
2014/04/15 Python
Python中使用copy模块实现列表(list)拷贝
2015/04/14 Python
python遍历数组的方法小结
2015/04/30 Python
教大家使用Python SqlAlchemy
2016/02/12 Python
Python3使用SMTP发送带附件邮件
2020/06/16 Python
Python之循环结构
2019/01/15 Python
python 标准差计算的实现(std)
2019/07/29 Python
PyQt使用QPropertyAnimation开发简单动画
2020/04/02 Python
用html5实现语音搜索框的方法
2014/03/18 HTML / CSS
新秀丽官方旗舰店:Samsonite拉杆箱、双肩包、皮具
2018/03/05 全球购物
澳大利亚购买健身器材网站:Gym Direct
2019/12/19 全球购物
教师实习自我鉴定
2013/12/18 职场文书
优秀学生评语大全
2014/04/25 职场文书
2014医学院领导班子对照检查材料思想汇报
2014/09/19 职场文书
处级领导班子全部召开专题民主生活会情况汇报
2014/09/27 职场文书
小学教师读书笔记
2015/07/01 职场文书
《初涉尘世》读后感3篇
2020/01/10 职场文书