基于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 相关文章推荐
仿校内登陆框,精美,给那些很厉害但是没有设计天才的程序员
Nov 24 Javascript
js 去除字符串第一位逗号的方法
Jun 07 Javascript
javascript制作网页图片上实现下雨效果
Feb 26 Javascript
jQuery的层级查找方式分析
Jun 16 Javascript
将List对象列表转换成JSON格式的类实现方法
Jul 04 Javascript
Vuejs第十一篇组件之slot内容分发实例详解
Sep 09 Javascript
BootStrap Table 设置height表头与内容无法对齐的问题
Dec 28 Javascript
angularJS模态框$modal实例代码
May 27 Javascript
微信小程序实现多个按钮toggle功能的实例
Jun 13 Javascript
vue2.0 实现页面导航提示引导的方法
Mar 13 Javascript
vue中axios的封装问题(简易版拦截,get,post)
Jun 15 Javascript
解决vue-cli项目webpack打包后iconfont文件路径的问题
Sep 01 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之第九天
2006/10/09 PHP
php遍历目录viewDir函数
2009/12/15 PHP
PHP调用VC编写的COM组件实例
2014/03/29 PHP
Symfony2开发之控制器用法实例分析
2016/02/05 PHP
Linux php 中文乱码的快速解决方法
2016/05/13 PHP
php通过各种函数判断0和空
2020/07/04 PHP
Laravel实现短信注册的示例代码
2018/05/29 PHP
基于jQuery的Tab选项框效果代码(插件)
2011/03/01 Javascript
javascript复制对象使用说明
2011/06/28 Javascript
Jquery判断form表单数据是否变化
2016/03/30 Javascript
JavaScript蒙板(model)功能的简单实现代码
2016/08/04 Javascript
详解在Vue中使用TypeScript的一些思考(实践)
2018/07/06 Javascript
前端防止用户重复提交js实现代码示例
2018/09/07 Javascript
JS如何获取地址栏的参数实例讲解
2018/10/06 Javascript
详解JavaScript 浮点数运算的精度问题
2019/07/23 Javascript
js实现踩五彩块游戏
2020/02/08 Javascript
使用Typescript和ES模块发布Node模块的方法
2020/05/25 Javascript
Python配置文件解析模块ConfigParser使用实例
2015/04/13 Python
Python itertools模块详解
2015/05/09 Python
在Python的Django框架中simple-todo工具的简单使用
2015/05/30 Python
python中利用h5py模块读取h5文件中的主键方法
2018/06/05 Python
python将txt文件读入为np.array的方法
2018/10/30 Python
想学python 这5本书籍你必看!
2018/12/11 Python
PyQt5重写QComboBox的鼠标点击事件方法
2019/06/25 Python
python中列表的切片与修改知识点总结
2019/07/23 Python
如何对python的字典进行排序
2020/06/19 Python
python如何控制进程或者线程的个数
2020/10/16 Python
Django执行源生mysql语句实现过程解析
2020/11/12 Python
详解HTML5 Canvas绘制不规则图形时的非零环绕原则
2016/03/21 HTML / CSS
美国领先的宠物用品和宠物食品零售商:Petco
2020/10/28 全球购物
将一个文本文件的内容按倒序打印出来
2015/01/05 面试题
党员干部廉洁承诺书
2014/05/28 职场文书
2014年小学班主任工作总结
2014/11/08 职场文书
出纳工作检讨书范文
2014/12/27 职场文书
复兴之路纪录片观后感
2015/06/02 职场文书
房产遗嘱范本
2015/08/06 职场文书