基于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+css使DIV始终居于屏幕中间 左下 左上 右上 右下的代码集合
Mar 10 Javascript
js监听滚动条滚动事件使得某个标签内容始终位于同一位置
Jan 24 Javascript
一个JavaScript处理textarea中的字符成每一行实例
Sep 22 Javascript
jquery实现的伪分页效果代码
Oct 29 Javascript
js正则表达式注册页面表单验证
Oct 11 Javascript
Vue + Webpack + Vue-loader学习教程之相关配置篇
Mar 14 Javascript
two.js之实现动画效果示例
Nov 06 Javascript
解决低版本的浏览器不支持es6的import问题
Mar 09 Javascript
Vuejs监听vuex中值的变化的方法示例
Dec 02 Javascript
微信小程序实现两边小中间大的轮播效果的示例代码
Dec 07 Javascript
微信h5静默和非静默授权获取用户openId的方法和步骤
Jun 08 Javascript
javascript实现电商放大镜效果
Nov 23 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 5.3新特性命名空间规则解析及高级功能
2010/03/11 PHP
在Linux系统下一键重新安装WordPress的脚本示例
2015/06/30 PHP
悄悄用脚本检查你访问过哪些网站的代码
2010/12/04 Javascript
JavaScript 的继承
2011/10/01 Javascript
单击浏览器右上角的X关闭窗口弹出提示的小例子
2013/06/12 Javascript
向左滚动文字 js代码效果
2013/08/17 Javascript
js获取select选中的option的text示例代码
2013/12/19 Javascript
一张表格告诉你windows.onload()与$(document).ready()的区别
2014/05/16 Javascript
兼容最新firefox、chrome和IE的javascript图片预览实现代码
2014/08/08 Javascript
javascript事件冒泡和事件捕获详解
2015/05/26 Javascript
js实现跨域的方法实例详解
2015/06/24 Javascript
JavaScript调用传递变量参数的相关问题及解决办法
2015/11/01 Javascript
JS框架之vue.js(深入三:组件1)
2016/09/29 Javascript
JavaScript实现垂直向上无缝滚动特效代码
2016/11/23 Javascript
JS拖拽排序插件Sortable.js用法实例分析
2019/02/20 Javascript
解决element ui select下拉框不回显数据问题的解决
2019/02/20 Javascript
微信小程序Page中data数据操作和函数调用方法
2019/05/08 Javascript
基于脚手架创建Vue项目实现步骤详解
2020/08/03 Javascript
Node.js 中如何收集和解析命令行参数
2021/01/08 Javascript
python之yield表达式学习
2014/09/02 Python
python的keyword模块用法实例分析
2015/06/30 Python
Python通过future处理并发问题
2017/10/17 Python
python爬虫爬取淘宝商品信息(selenum+phontomjs)
2018/02/24 Python
Python基于lxml模块解析html获取页面内所有叶子节点xpath路径功能示例
2018/05/16 Python
pygame实现俄罗斯方块游戏
2018/06/26 Python
Django contenttypes 框架详解(小结)
2018/08/13 Python
python基于paramiko将文件上传到服务器代码实现
2019/07/08 Python
如何设置PyCharm中的Python代码模版(推荐)
2020/11/20 Python
中学教师实习自我鉴定
2013/09/28 职场文书
日语专业毕业生求职信
2013/12/04 职场文书
军校本科大学生自我评价
2014/01/14 职场文书
函授大学生自我鉴定
2014/02/05 职场文书
双拥工作宣传标语
2014/06/26 职场文书
党支部书记岗位职责
2015/02/15 职场文书
小学教师工作总结2015
2015/04/07 职场文书
2016年七夕情人节宣传语
2015/11/25 职场文书