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 相关文章推荐
textarea焦点的用法实现获取焦点清空失去焦点提示效果
May 19 Javascript
js实现多选项切换导航菜单的方法
Feb 06 Javascript
在AngularJS应用中实现一些动画效果的代码
Jun 18 Javascript
基于JS实现无缝滚动思路及代码分享
Jun 07 Javascript
AngularJS extend用法详解及实例代码
Nov 15 Javascript
ES6新特性之函数的扩展实例详解
Apr 01 Javascript
Angular resolve基础用法详解
Oct 03 Javascript
搭建基于express框架运行环境的方法步骤
Nov 15 Javascript
微信小程序实现简单评论功能
Nov 28 Javascript
微信小程序按顺序同步执行的两种方式
Dec 20 Javascript
vue Treeselect 树形下拉框:获取选中节点的ids和lables操作
Aug 15 Javascript
JavaScript原型链详解
Nov 07 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
一个简单的自动发送邮件系统(三)
2006/10/09 PHP
PHP函数之error_reporting(E_ALL ^ E_NOTICE)详细说明
2011/07/01 PHP
PHP在线打包下载功能示例
2016/10/15 PHP
Laravel使用scout集成elasticsearch做全文搜索的实现方法
2018/11/30 PHP
php+lottery.js实现九宫格抽奖功能
2019/07/21 PHP
js 事件小结 表格区别
2007/08/13 Javascript
JavaScript学习笔记(十七)js 优化
2010/02/04 Javascript
javascript之典型高阶函数应用介绍二
2013/01/10 Javascript
javascript实现简单的Map示例介绍
2013/12/23 Javascript
jquery 页面滚动到底部自动加载插件集合
2014/01/31 Javascript
解决jquery操作checkbox火狐下第二次无法勾选问题
2014/02/10 Javascript
深入理解Angularjs向指令传递数据双向绑定机制
2016/12/31 Javascript
微信小程序开发之map地图实现教程
2017/06/08 Javascript
JS运动特效之任意值添加运动的方法分析
2018/01/24 Javascript
如何让node运行es6模块文件及其原理详解
2018/12/11 Javascript
JavaScript实现选项卡效果的分析及步骤
2019/04/16 Javascript
vue父子组件通信的高级用法示例
2019/08/29 Javascript
JavaScript 实现HTML DOM增删改查操作的常见方法详解
2020/01/04 Javascript
[01:09:40]Newbee vs Pain 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
python实现通过代理服务器访问远程url的方法
2015/04/29 Python
Python实用日期时间处理方法汇总
2015/05/09 Python
Python 迭代器工具包【推荐】
2016/05/06 Python
利用Python脚本生成sitemap.xml的实现方法
2017/01/31 Python
在CentOS6上安装Python2.7的解决方法
2018/01/09 Python
使用python爬虫获取黄金价格的核心代码
2018/06/13 Python
python实现12306登录并保存cookie的方法示例
2019/12/17 Python
django实现将修改好的新模型写入数据库
2020/03/31 Python
python3 配置logging日志类的操作
2020/04/08 Python
简单的Python人脸识别系统
2020/07/14 Python
matplotlib运行时配置(Runtime Configuration,rc)参数rcParams解析
2021/01/05 Python
大专应届生个人的自我评价
2013/11/21 职场文书
产品售后服务承诺书
2014/05/21 职场文书
酒后驾车标语
2014/06/30 职场文书
商务邀请函
2015/01/30 职场文书
一个独生女的故事观后感
2015/06/04 职场文书
python spilt()分隔字符串的实现示例
2021/05/21 Python