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知识点一 Jquery的ready和Dom的onload的区别
Jan 15 Javascript
javascript 进阶篇3 Ajax 、JSON、 Prototype介绍
Mar 14 Javascript
JavaScript中数组对象的那些自带方法介绍
Mar 12 Javascript
js+css实现增加表单可用性之提示文字
Jun 03 Javascript
js不能获取隐藏的div的宽度只能先显示后获取
Sep 04 Javascript
vue.js 初体验之Chrome 插件开发实录
May 13 Javascript
自定义vue组件发布到npm的方法
May 09 Javascript
Vue实现textarea固定输入行数与添加下划线样式的思路详解
Jun 28 Javascript
Vue项目History模式404问题解决方法
Oct 31 Javascript
webpack + vue 打包生成公共配置文件(域名) 方便动态修改
Aug 29 Javascript
Vue文本模糊匹配功能如何实现
Jul 30 Javascript
vue3引入highlight.js进行代码高亮的方法实例
Apr 08 Vue.js
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中phar包的使用教程
2017/06/14 PHP
PHP实现使用DOM将XML数据存入数组的方法示例
2017/09/27 PHP
购物车实现的几种方式优缺点对比
2018/05/02 PHP
ThinkPHP3.2.3框架实现的空模块、空控制器、空操作,跳转到错误404页面图文详解
2019/04/03 PHP
在Javascript中定义对象类别
2006/12/22 Javascript
js trim函数 去空格函数与正则集锦
2009/11/20 Javascript
jquery异步跨域访问代码
2013/06/28 Javascript
jQuery实现图片放大预览实现原理及代码
2013/09/12 Javascript
jquery实现简洁文件上传表单样式
2015/11/02 Javascript
node.js调用Chrome浏览器打开链接地址的方法
2017/05/17 Javascript
第一个Vue插件从封装到发布
2017/11/22 Javascript
微信小程序block的使用教程
2018/04/01 Javascript
JavaScript使用递归和循环实现阶乘的实例代码
2018/08/28 Javascript
Vue cli3 库模式搭建组件库并发布到 npm的流程
2018/10/12 Javascript
微信小程序实现点击效果
2019/06/21 Javascript
微信小程序getLocation 需要在app.json中声明permission字段
2020/03/03 Javascript
在Vue.js中使用TypeScript的方法
2020/03/19 Javascript
vue2.0实现列表数据增加和删除
2020/06/17 Javascript
小程序Scroll-view上拉滚动刷新数据
2020/06/21 Javascript
[02:17]TI4西雅图DOTA2前线报道 啸天mik夫妻档解说
2014/07/08 DOTA
Python实现全局变量的两个解决方法
2014/07/03 Python
跟老齐学Python之编写类之二方法
2014/10/11 Python
详解Python的单元测试
2015/04/28 Python
Python数据结构之翻转链表
2017/02/25 Python
django 环境变量配置过程详解
2019/08/06 Python
Python 类的魔法属性用法实例分析
2019/11/21 Python
Python udp网络程序实现发送、接收数据功能示例
2019/12/09 Python
keras 指定程序在某块卡上训练实例
2020/06/22 Python
IE兼容css3圆角的实现代码
2011/07/21 HTML / CSS
Perricone MD裴礼康美国官网:抗衰老护肤品
2016/09/26 全球购物
CHARLES & KEITH澳大利亚官网:新加坡时尚品牌
2019/01/22 全球购物
新闻专业大学生找工作的自我评价
2013/10/30 职场文书
运输服务质量承诺书
2014/03/27 职场文书
校本课程教学计划
2015/01/19 职场文书
dubbo集成zipkin获取Traceid的实现
2021/07/26 Java/Android
字节飞书面试promise.all实现示例
2022/06/16 Javascript