基于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 相关文章推荐
根据分辨率不同,调用不同的css文件
Aug 25 Javascript
9个JavaScript评级/投票插件
Jan 18 Javascript
2010年最佳jQuery插件整理
Dec 06 Javascript
33个优秀的 jQuery 图片展示插件分享
Mar 14 Javascript
jquery在Chrome下获取图片的长宽问题解决
Mar 20 Javascript
JQuery实现绚丽的横向下拉菜单
Dec 19 Javascript
javascript实现禁止复制网页内容
Dec 16 Javascript
JS实现简单的图书馆享元模式实例
Jun 30 Javascript
js实现将选中内容分享到新浪或腾讯微博
Dec 16 Javascript
js实现异步循环实现代码
Feb 16 Javascript
详解Vue2.x-directive的学习笔记
Jul 17 Javascript
JS实现随机抽取三人
Nov 06 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中global和$GLOBALS[]的分析之一
2012/02/02 PHP
PHP IE中下载附件问题解决方法
2014/01/07 PHP
PHP技术开发微信公众平台
2015/07/22 PHP
php + nginx项目中的权限详解
2017/05/23 PHP
jQuery Flash/MP3/Video多媒体插件
2010/01/18 Javascript
ie8本地图片上传预览示例代码
2014/01/12 Javascript
jquery使用jxl插件导出excel示例
2014/04/14 Javascript
jQuery实现鼠标经过事件的延时处理效果
2020/08/20 Javascript
基于jQuery实现动态搜索显示功能
2016/05/05 Javascript
AngularJS中的指令全面解析(必看)
2016/05/20 Javascript
利用jquery实现瀑布流3种案例
2016/09/18 Javascript
js实现加载更多功能实例
2016/10/27 Javascript
jquery 判断div show的状态实例
2016/12/03 Javascript
AngularJS入门教程之Helloworld示例
2016/12/25 Javascript
微信小程序实战之轮播图(3)
2017/04/17 Javascript
JavaScript基于replace+正则实现ES6的字符串模版功能
2017/04/25 Javascript
bootstrap Table服务端处理分页(后台是.net)
2017/10/19 Javascript
vue-cli开发时,关于ajax跨域的解决方法(推荐)
2018/02/03 Javascript
详解vue中async-await的使用误区
2018/12/05 Javascript
vue基础之data存储数据及v-for循环用法示例
2019/03/08 Javascript
跨平台python异步回调机制实现和使用方法
2013/11/26 Python
Python中优化NumPy包使用性能的教程
2015/04/23 Python
Python正则简单实例分析
2017/03/21 Python
pandas apply 函数 实现多进程的示例讲解
2018/04/20 Python
python 产生token及token验证的方法
2018/12/26 Python
python之mock模块基本使用方法详解
2019/06/27 Python
在python image 中实现安装中文字体
2020/05/16 Python
pytorch使用horovod多gpu训练的实现
2020/09/09 Python
Old Navy加拿大官网:美式休闲服饰品牌
2017/09/26 全球购物
办公室驾驶员岗位职责
2013/11/15 职场文书
党员思想汇报范文
2013/12/30 职场文书
老人祝寿主持词
2014/03/28 职场文书
十佳护士先进事迹
2014/05/08 职场文书
排查整治工作方案
2014/06/09 职场文书
企业标语大全
2014/07/01 职场文书
道士塔读书笔记
2015/06/30 职场文书