基于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 相关文章推荐
如何实现iframe(嵌入式帧)的自适应高度
Jul 26 Javascript
js 数组操作代码集锦
Apr 28 Javascript
jQuery 一个图片切换的插件
Oct 09 Javascript
基于jQuery实现的百度导航li拖放排列效果,即时更新数据库
Jul 31 Javascript
SwfUpload在IE10上不出现上传按钮的解决方法
Jun 25 Javascript
AngularJS Select(选择框)使用详解
Jan 18 Javascript
js实现添加删除表格(两种方法)
Apr 27 Javascript
react脚手架如何配置less和ant按需加载的方法步骤
Nov 28 Javascript
对Layer UI 模块化的用法详解
Sep 26 Javascript
Vue 中 template 有且只能一个 root的原因解析(源码分析)
Apr 11 Javascript
JavaScript面向对象核心知识与概念归纳整理
May 09 Javascript
jquery html添加元素/删除元素操作实例详解
May 20 jQuery
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
Codeigniter发送邮件的方法
2015/03/19 PHP
nginx下安装php7+php5
2016/07/31 PHP
PHP使用preg_split()分割特殊字符(元字符等)的方法分析
2017/02/04 PHP
JavaScript 编程引入命名空间的方法与代码
2007/08/13 Javascript
JS定时器实例详细分析
2013/10/11 Javascript
javascript面向对象特性代码实例
2014/06/12 Javascript
给js文件传参数(详解)
2014/07/13 Javascript
IE中鼠标经过option触发mouseout的解决方法
2015/01/29 Javascript
Node.js实现数据推送
2016/04/14 Javascript
最全面的百度地图JavaScript离线版开发
2016/09/10 Javascript
jQuery EasyUI ProgressBar进度条组件
2017/02/28 Javascript
layer弹出层全屏及关闭方法
2018/08/17 Javascript
jQuery判断自定义属性data-val用法示例
2019/01/07 jQuery
Vue响应式原理Observer、Dep、Watcher理解
2019/06/06 Javascript
微信小程序实现搜索功能
2020/03/10 Javascript
vue-socket.io接收不到数据问题的解决方法
2020/05/13 Javascript
Vuex的各个模块封装的实现
2020/06/05 Javascript
[01:02:34]TFT vs VGJ.T Supermajor 败者组 BO3 第二场 6.5
2018/06/06 DOTA
urllib2自定义opener详解
2014/02/07 Python
python的Template使用指南
2014/09/11 Python
Python用61行代码实现图片像素化的示例代码
2018/12/10 Python
使用Python将Exception异常错误堆栈信息写入日志文件
2020/04/08 Python
Python高阶函数与装饰器函数的深入讲解
2020/11/10 Python
Python实现给PDF添加水印的方法
2021/01/25 Python
CSS3实现红包抖动效果
2020/12/23 HTML / CSS
法国设计制造的扫帚和刷子:Andrée Jardin
2018/12/06 全球购物
.NET面试题:什么是值类型和引用类型
2016/01/12 面试题
海南地接欢迎词
2014/01/14 职场文书
婚假请假条怎么写
2014/04/10 职场文书
村抢险救灾方案
2014/05/09 职场文书
办公室行政主管岗位职责
2015/04/09 职场文书
写给女朋友的检讨书
2015/05/06 职场文书
婚前协议书怎么写,才具有法律效力呢 ?
2019/06/28 职场文书
创业计划书之蛋糕店
2019/08/29 职场文书
如何使用Python对NetCDF数据做空间相关分析
2021/04/21 Python
Win11显卡控制面板打开显卡设置方法
2022/04/20 数码科技