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判断小数点两位和自动删除小数两位后的数字
Mar 19 Javascript
jQuery异步加载数据并添加事件示例
Aug 24 Javascript
Shell脚本实现Linux系统和进程资源监控
Mar 05 Javascript
JS实现选项卡实例详解
Nov 17 Javascript
学习JavaScript设计模式之享元模式
Jan 18 Javascript
Vue2 模板template的四种写法总结
Feb 23 Javascript
让Vue也可以使用Redux的方法
May 23 Javascript
jQuery实现的页面详情展开收起功能示例
Jun 11 jQuery
在Vue 中使用Typescript的示例代码
Sep 10 Javascript
koa-router路由参数和前端路由的结合详解
May 19 Javascript
jQuery属性选择器用法实例分析
Jun 28 jQuery
js实现简单选项卡制作
Aug 05 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字符比较函数similar_text、strnatcmp与strcasecmp用法分析
2014/11/18 PHP
PHP动态地创建属性和方法, 对象的复制, 对象的比较,加载指定的文件,自动加载类文件,命名空间
2016/05/06 PHP
php中替换字符串函数strtr()和str_repalce()的用法与区别
2016/11/25 PHP
php实现查询功能(数据访问)
2017/05/23 PHP
php面向对象重点知识分享
2019/09/27 PHP
javascript下有关dom以及xml节点访问兼容问题
2007/11/26 Javascript
Prototype String对象 学习
2009/07/19 Javascript
jquery ajax提交表单数据的两种方式
2009/11/24 Javascript
js 数组的for循环到底应该怎么写?
2010/05/31 Javascript
计算世界完全对称日的js代码,粗糙版
2011/11/04 Javascript
javaScript如何生成xmlhttp
2013/12/16 Javascript
JS中使用Array函数shift和pop创建可忽略参数的例子
2014/05/28 Javascript
javascript中字符串拼接详解
2014/09/26 Javascript
JavaScript sub方法入门实例(把字符串显示为下标)
2014/10/17 Javascript
Vuejs第十三篇之组件——杂项
2016/09/09 Javascript
基于jQuery实现数字滚动效果
2017/01/16 Javascript
jQuery Masonry瀑布流布局神器使用详解
2017/05/25 jQuery
vue实现移动端图片裁剪上传功能
2020/08/18 Javascript
Material(包括Material Icon)在Angular2中的使用详解
2018/02/11 Javascript
在Node.js中将SVG图像转换为PNG,JPEG,TIFF,WEBP和HEIF格式的方法
2019/08/22 Javascript
JavaScript 作用域scope简单汇总
2019/10/23 Javascript
[01:07:20]DOTA2-DPC中国联赛 正赛 Dynasty vs XG BO3 第二场 2月2日
2021/03/11 DOTA
python和shell变量互相传递的几种方法
2013/11/20 Python
利用Python中unittest实现简单的单元测试实例详解
2017/01/09 Python
python实现蒙特卡罗方法教程
2019/01/28 Python
提升Python效率之使用循环机制代替递归函数
2019/07/23 Python
阳光体育:Sunny Sports(购买露营和远足设备)
2018/08/07 全球购物
银行会计职员个人的自我评价
2013/09/29 职场文书
请假条范文大全
2014/04/10 职场文书
政风行风整改报告
2014/11/06 职场文书
乐山大佛导游词
2015/02/02 职场文书
李强感恩观后感
2015/06/17 职场文书
2019个人半年工作总结
2019/06/21 职场文书
将图片保存到mysql数据库并展示在前端页面的实现代码
2021/05/02 MySQL
详解CSS开发过程中的20个快速提升技巧
2021/05/21 HTML / CSS
使用jpa之动态插入与修改(重写save)
2021/11/23 Java/Android