基于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 相关文章推荐
最佳6款用于移动网站开发的jQuery 图片滑块插件小结
Jul 20 Javascript
js判断url是否有效的两种方法
Mar 04 Javascript
IE6中链接A的href为javascript协议时不在当前页面跳转
Jun 05 Javascript
JS模式之简单的订阅者和发布者模式完整实例
Jun 30 Javascript
利用HTML5+Socket.io实现摇一摇控制PC端歌曲切换
Jan 13 Javascript
js学使用setTimeout实现轮循动画
Jul 17 Javascript
Vue-router路由判断页面未登录跳转到登录页面的实例
Oct 26 Javascript
解读vue生成的文件目录结构及说明
Nov 27 Javascript
vue实现的仿淘宝购物车功能详解
Jan 27 Javascript
详解package.json版本号规则
Aug 01 Javascript
Jquery 获取相同NAME 或者id删除行操作
Aug 24 jQuery
swiper自定义分页器的样式
Sep 14 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 时间设定)使用入门代码
2008/06/05 PHP
一个PHP缓存类代码(附详细说明)
2011/06/09 PHP
Android ProgressBar进度条和ProgressDialog进度框的展示DEMO
2013/06/19 PHP
php类的扩展和继承用法实例
2015/06/20 PHP
兼容多浏览器的字幕特效Marquee的通用js类
2008/07/20 Javascript
js调用css属性写法
2013/09/21 Javascript
JS实现将人民币金额转换为大写的示例代码
2014/02/13 Javascript
JQuery记住用户名和密码的具体实现
2014/04/04 Javascript
javascript实例--教你实现扑克牌洗牌功能
2014/05/15 Javascript
AngularJS 面试题集锦
2016/09/06 Javascript
巧用Vue.js+Vuex制作专门收藏微信公众号的app
2016/11/03 Javascript
js禁止浏览器页面后退功能的实例(推荐)
2017/09/01 Javascript
angularjs实现简单的购物车功能
2017/09/21 Javascript
极简主义法编写JavaScript类
2017/11/02 Javascript
vue异步加载高德地图的实现
2018/06/19 Javascript
微信小程序如何修改radio和checkbox的默认样式和图标
2019/07/24 Javascript
Layer UI表格列日期格式化及取消自动填充日期的实现方法
2020/05/10 Javascript
jQuery+css实现的点击图片放大缩小预览功能示例【图片预览 查看大图】
2020/05/29 jQuery
vue addRoutes路由动态加载操作
2020/08/04 Javascript
JavaScript实现H5接金币功能(实例代码)
2021/02/22 Javascript
[02:11]2014DOTA2 TI专访VG战队Fenrir:队伍气氛良好
2014/07/11 DOTA
[54:47]Liquid vs VP Supermajor决赛 BO 第五场 6.10
2018/07/05 DOTA
Python创建模块及模块导入的方法
2015/05/27 Python
virtualenv实现多个版本Python共存
2017/08/21 Python
基于随机梯度下降的矩阵分解推荐算法(python)
2018/08/31 Python
python使用xlrd和xlwt读写Excel文件的实例代码
2018/09/05 Python
python在TXT文件中按照某一字符串取出该字符串所在的行方法
2018/12/10 Python
Python第三方库h5py_读取mat文件并显示值的方法
2019/02/08 Python
Python 实现try重新执行
2019/12/21 Python
Python matplotlib模块及柱状图用法解析
2020/08/10 Python
html5实现微信打飞机游戏
2014/03/27 HTML / CSS
Ticketmaster德国票务网站:购买音乐会和体育等门票
2016/11/14 全球购物
国博复兴之路观后感
2015/06/02 职场文书
交流会主持词
2015/07/02 职场文书
Typescript类型系统FLOW静态检查基本规范
2022/05/25 Javascript
SpringBoot使用ip2region获取地理位置信息的方法
2022/06/21 Java/Android