jquery简单的拖动效果实现原理及示例


Posted in Javascript onJuly 26, 2013
<!DOCTYPE html> 
<html> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>简单拖?鲈?硎道?lt;/title> 
<style type="text/css"> 
#drag{width:400px;height:300px;background:url(http://upload.yxgz.cn/uploadfile/2009/0513/20090513052611873.jpg);cursor:move;position:absolute;top:100px;left:100px;border:solid 1px #ccc;} 
h2{color:#fff;background: none repeat scroll 0 0 rgba(16, 90, 31, 0.7);color:#FFFFFF;height:40px;line-height:40px;margin:0;} 
</style> 
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" type="text/javascript"></script> 
<script type="text/javascript"> 
$(function(){ 
/*--------------拖曳效果---------------- 
*原理:标记拖曳状态dragging ,坐标位置iX, iY 
* mousedown:fn(){dragging = true, 记录起始坐标位置,设置鼠标捕获} 
* mouseover:fn(){判断如果dragging = true, 则当前坐标位置 - 记录起始坐标位置,绝对定位的元素获得差值} 
* mouseup:fn(){dragging = false, 释放鼠标捕获,防止冒泡} 
*/ 
var dragging = false; 
var iX, iY; 
$("#drag").mousedown(function(e) { 
dragging = true; 
iX = e.clientX - this.offsetLeft; 
iY = e.clientY - this.offsetTop; 
this.setCapture && this.setCapture(); 
return false; 
}); 
document.onmousemove = function(e) { 
if (dragging) { 
var e = e || window.event; 
var oX = e.clientX - iX; 
var oY = e.clientY - iY; 
$("#drag").css({"left":oX + "px", "top":oY + "px"}); 
return false; 
} 
}; 
$(document).mouseup(function(e) { 
dragging = false; 
$("#drag")[0].releaseCapture(); 
e.cancelBubble = true; 
}) }) 
</script> 
</head> 
<body> 
<div id="drag"> 
<h2>来拖动我啊</h2> 
</div> 
</body> 
</html>
Javascript 相关文章推荐
基于jquery实现控制经纬度显示地图与卫星
May 20 Javascript
浅析LigerUi开发中谨慎载入common.css文件
Jul 09 Javascript
javascript仿php的print_r函数输出json数据
Sep 13 Javascript
js判断移动端是否安装某款app的多种方法
Dec 18 Javascript
Angularjs 实现一个幻灯片示例代码
Sep 08 Javascript
微信小程序 登陆流程详细介绍
Jan 17 Javascript
学习JS中的DOM节点以及操作
Apr 30 Javascript
详解如何解决Vue和vue-template-compiler版本之间的问题
Sep 17 Javascript
用WebStorm进行Angularjs 2开发(环境篇:Windows 10,Angular-cli方式)
Dec 05 Javascript
Javascript的this详解
Mar 23 Javascript
js实现一个简易计算器
Mar 30 Javascript
关于vue里页面的缓存详解
Nov 04 Javascript
js监听键盘事件示例代码
Jul 26 #Javascript
jQuery的控件及事件(输入控件及回车事件)使用示例
Jul 25 #Javascript
固定表格行列(expression)在IE下适用
Jul 25 #Javascript
JavaScript字符串插入、删除、替换函数使用示例
Jul 25 #Javascript
不使用浏览器运行javascript代码的方法
Jul 24 #Javascript
js展开闭合效果演示代码
Jul 24 #Javascript
火狐textarea输入法的bug的触发及解决
Jul 24 #Javascript
You might like
PHP查询数据库中满足条件的记录条数(两种实现方法)
2013/01/29 PHP
PHP+Memcache实现wordpress访问总数统计(非插件)
2014/07/04 PHP
appendChild() 或 insertBefore()使用与区别介绍
2013/10/11 Javascript
js获取url中指定参数值的示例代码
2013/12/14 Javascript
jquery $.trim()方法使用介绍
2014/05/21 Javascript
js使用html()或text()方法获取设置p标签的显示的值
2014/08/01 Javascript
node.js中的http.response.addTrailers方法使用说明
2014/12/14 Javascript
JQuery实现超链接鼠标提示效果的方法
2015/06/10 Javascript
学习javascript的闭包,原型,和匿名函数之旅
2015/10/18 Javascript
jquery+css实现动感的图片切换效果
2015/11/25 Javascript
大型JavaScript应用程序架构设计模式
2016/06/29 Javascript
你可能不知道的JSON.stringify()详解
2017/08/17 Javascript
js循环map 获取所有的key和value的实现代码(json)
2018/05/09 Javascript
解决vuecli3.0热更新失效的问题
2018/09/19 Javascript
vue中slot(插槽)的介绍与使用
2018/11/12 Javascript
JS/HTML5游戏常用算法之路径搜索算法 随机迷宫算法详解【普里姆算法】
2018/12/13 Javascript
详解vue中axios请求的封装
2019/04/08 Javascript
vue cli3适配所有端方案的实现
2020/04/13 Javascript
json.stringify()与json.parse()的区别以及用处
2021/01/25 Javascript
[48:44]2014 DOTA2国际邀请赛中国区预选赛5.21 TongFu VS HGT
2014/05/22 DOTA
用yum安装MySQLdb模块的步骤方法
2016/12/15 Python
Python实现购物程序思路及代码
2017/07/24 Python
使用memory_profiler监测python代码运行时内存消耗方法
2018/12/03 Python
python读文件的步骤
2019/10/08 Python
Python实现中值滤波去噪方式
2019/12/18 Python
Python3 xml.etree.ElementTree支持的XPath语法详解
2020/03/06 Python
Django调用支付宝接口代码实例详解
2020/04/04 Python
keras 实现轻量级网络ShuffleNet教程
2020/06/19 Python
Django正则URL匹配实现流程解析
2020/11/13 Python
使用Python制作一个数据预处理小工具(多种操作一键完成)
2021/02/07 Python
Wiggle中国:英国骑行、跑步、游泳 & 铁三运动装备专卖网店
2016/08/02 全球购物
广告设计应届生求职信
2014/03/01 职场文书
师德师风个人自我剖析材料
2014/09/27 职场文书
银行贷款委托书范本
2014/10/11 职场文书
2014城乡环境综合治理工作总结
2014/12/19 职场文书
2016年“9.22”世界无车日活动小结
2016/04/05 职场文书