基于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 动态添加标签(新增一行,其实很简单,就是几个函数的应用)
Mar 26 Javascript
浅析javascript闭包 实例分析
Dec 25 Javascript
解决jquery异步按一定的时间间隔刷新问题
Dec 10 Javascript
判断是否安装flash player及当前版本的JS代码
Aug 08 Javascript
使用JavaScript修改浏览器URL地址栏的实现代码
Oct 21 Javascript
jQuery实现的经典竖向伸缩菜单效果代码
Sep 24 Javascript
jQuery实现的仿百度分页足迹效果代码
Oct 30 Javascript
基于JavaScript实现选项卡效果
Jul 21 Javascript
jQuery实现base64前台加密解密功能详解
Aug 29 jQuery
angularJs中ng-model-options设置数据同步的方法
Sep 30 Javascript
Vue项目报错:Uncaught SyntaxError: Unexpected token
Nov 10 Javascript
layui当点击文本框时弹出选择框,显示选择内容的例子
Sep 02 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
去掉destoon资讯内容页keywords关键字自带的文章标题的方法
2014/08/21 PHP
完美实现wordpress禁止文章修订和自动保存的方法
2014/11/03 PHP
mysql alter table命令修改表结构实例详解
2016/09/24 PHP
javascript游戏开发之《三国志曹操传》零部件开发(五)可移动地图的实现
2013/01/23 Javascript
js弹出确认是否删除对话框
2014/03/27 Javascript
原生js和jQuery写的网页选项卡特效对比
2015/04/27 Javascript
JavaScript模拟push
2016/03/06 Javascript
关于网页中的无缝滚动的js代码
2016/06/09 Javascript
用Vue.extend构建消息提示组件的方法实例
2017/08/08 Javascript
基于Vue生产环境部署详解
2017/09/15 Javascript
vue.js整合mint-ui里的轮播图实例代码
2017/12/27 Javascript
微信小程序自定义toast的实现代码
2018/11/16 Javascript
如何优雅地取消 JavaScript 异步任务
2020/03/22 Javascript
Python编码爬坑指南(必看)
2016/06/10 Python
Python序列化基础知识(json/pickle)
2017/10/19 Python
Python实现PS滤镜碎片特效功能示例
2018/01/24 Python
Python查找最长不包含重复字符的子字符串算法示例
2019/02/13 Python
python安装scipy的方法步骤
2019/06/26 Python
python3 反射的四种基本方法解析
2019/08/26 Python
ubuntu 18.04 安装opencv3.4.5的教程(图解)
2019/11/04 Python
python中return的返回和执行实例
2019/12/24 Python
python 获取字典特定值对应的键的实现
2020/09/29 Python
python爬虫scrapy基于CrawlSpider类的全站数据爬取示例解析
2021/02/20 Python
MANGO官方网站:西班牙芒果服装品牌
2017/01/15 全球购物
颇特女士:NET-A-PORTER(直邮中国)
2020/07/11 全球购物
学雷锋月活动总结
2014/04/25 职场文书
义务教育学校标准化建设汇报材料
2014/08/16 职场文书
党员作风建设自查报告
2014/10/23 职场文书
离婚协议书范文2014(夫妻感情破裂)
2014/12/14 职场文书
2014年标准化工作总结
2014/12/17 职场文书
以权谋私检举信范文
2015/03/02 职场文书
2015年店长个人工作总结
2015/10/23 职场文书
《怀念母亲》教学反思
2016/02/19 职场文书
go mod 安装依赖 unkown revision问题的解决方案
2021/05/06 Golang
Python读取和写入Excel数据
2022/04/20 Python
利用Python脚本写端口扫描器socket,python-nmap
2022/07/23 Python