jquery方法+js一般方法+js面向对象方法实现拖拽效果


Posted in Javascript onAugust 30, 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=GBK" /> 
<title>拖拽</title> 
<script type="text/javascript" src="http://demo.3water.com/jslib/jquery/jquery.js"></script> 
<style type="text/css"> 
*{margin: 0;padding: 0;} 
#drag{background: #ccc;height: 200px;width: 300px;text-align: center;line-height: 200px;position: absolute;left: 20px;top: 20px;} 
</style> 
<body> 
<div id="drag"> 
我可以拖动哦!! 
</div> 
<script type="text/javascript"> 
//jquery方法拖拽 
/**$(function(){ 
var move = false; //判断是否被移动 
var a = 0; 
var b = 0; 
$("#drag").mousedown(function(event){ 
move = true; 
a = event.pageX - parseInt($("#drag").css("left")); 
b = event.pageY - parseInt($("#drag").css("top")); 
}) 
$(document).mousemove(function(event){ 
if(move){ 
var x = event.pageX - a; 
var y = event.pageY - b; 
$("#drag").css({left: x,top: y}) 
} 
}).mouseup(function(){ 
move = false; 
}) 
})**/ 
//简单的js一般方法 
/**var drag = document.getElementById("drag"); 
var a = 0; 
var b = 0; 
drag.onmousedown = function(event){ 
var event = event||window.event; 
a = event.clientX-drag.offsetLeft; 
b = event.clientY-drag.offsetTop; 
drag.onmousemove = function(event){ 
var event = event||window.event; 
var x = event.clientX - a; 
var y = event.clientY - b; 
drag.style.left = x + "px"; 
drag.style.top = y + "px"; 
} 
document.onmouseup=function(){ 
drag.onmousemove = null; 
drag.onmouseup = null; 
} 
}**/ 
//js面向对象方法 
function Drag(obj){ 
this.drag = document.getElementById(obj); 
//alert(obj); 
this.a = 0; 
this.b = 0; 
var that = this; 
this.drag.onmousedown = function(event){ 
that.mousedown(event); 
} 
} 
Drag.prototype.mousedown = function(event){ 
var event = event||window.event; 
this.a = event.clientX-this.drag.offsetLeft; 
this.b = event.clientY-this.drag.offsetTop; 
var that = this; 
document.onmousemove=function(event){ 
that.mousemove(event) 
} 
document.onmouseup=function(){ 
that.mouseup() 
} 
} 
Drag.prototype.mousemove = function(event){ 
var event = event||window.event; 
var x = event.clientX - this.a; 
var y = event.clientY - this.b; 
this.drag.style.left = x + "px"; 
this.drag.style.top = y + "px"; 
} 
Drag.prototype.mouseup=function(){ 
document.onmousemove = null; 
document.onmouseup = null; 
} 
new Drag("drag"); 
</script> 
</body> 
</html>
Javascript 相关文章推荐
最短的javascript:地址栏载入脚本代码
Oct 13 Javascript
js获取 type=radio 值的方法
May 09 Javascript
JavaScript实现查找字符串中第一个不重复的字符
Dec 29 Javascript
bootstrap datepicker限定可选时间范围实现方法
Sep 28 Javascript
详解微信小程序审核不通过的解决方法
Jan 17 Javascript
Angular 向组件传递模板的两种方法
Feb 23 Javascript
angularjs实现的购物金额计算工具示例
May 08 Javascript
webpack css加载和图片加载的方法示例
Sep 11 Javascript
解决Vue @submit 提交后不刷新页面问题
Jul 18 Javascript
vue 内联样式style中的background用法说明
Aug 05 Javascript
vue项目如何监听localStorage或sessionStorage的变化
Jan 04 Vue.js
js实现电灯开关效果
Jan 19 Javascript
JS跨域代码片段
Aug 30 #Javascript
JS跨域总结
Aug 30 #Javascript
js中判断Object、Array、Function等引用类型对象是否相等
Aug 29 #Javascript
xml转json的js代码
Aug 28 #Javascript
基于jquery创建的一个图片、视频缓冲的效果样式插件
Aug 28 #Javascript
javascript 判断中文字符长度的函数代码
Aug 27 #Javascript
Jquery 数据选择插件Pickerbox使用介绍
Aug 24 #Javascript
You might like
将时间以距今多久的形式表示,PHP,js双版本
2012/09/25 PHP
php获取汉字首字母的函数
2013/11/07 PHP
ThinkPHP实例化模型的四种方法概述
2014/08/22 PHP
DWZ+ThinkPHP开发时遇到的问题分析
2016/12/12 PHP
使用PHP+Redis实现延迟任务,实现自动取消订单功能
2019/11/21 PHP
一些不错的js函数ajax
2008/08/20 Javascript
js getBoundingClientRect() 来获取页面元素的位置
2010/11/25 Javascript
jquery中ajax学习笔记3
2011/10/16 Javascript
jq选项卡鼠标延迟的插件实例
2013/05/13 Javascript
node.js中的url.parse方法使用说明
2014/12/10 Javascript
js计算文本框输入的字符数
2015/10/23 Javascript
JavaScript语言精粹经典实例(整理篇)
2016/06/07 Javascript
JS三目运算(三元运算)方法详解
2017/03/01 Javascript
浅谈react-router HashRouter和BrowserRouter的使用
2017/12/29 Javascript
echarts实现地图定时切换散点与多图表级联联动详解
2018/08/07 Javascript
利用Vue构造器创建Form组件的通用解决方法
2018/12/03 Javascript
Vue实现本地购物车功能
2018/12/05 Javascript
在vue项目中使用Jquery-contextmenu插件的步骤讲解
2019/01/27 jQuery
vue-cli3使用 DllPlugin 实现预编译提升构建速度
2019/04/24 Javascript
[01:03:00]DOTA2上海特级锦标赛A组败者赛 EHOME VS CDEC第一局
2016/02/25 DOTA
[00:47]DOTA2荣耀之路6:天火,天火!
2018/05/30 DOTA
python基础教程之实现石头剪刀布游戏示例
2014/02/11 Python
python简单读取大文件的方法
2016/07/01 Python
Python最小二乘法矩阵
2019/01/02 Python
Python 利用pydub库操作音频文件的方法
2019/01/09 Python
Python 一键制作微信好友图片墙的方法
2019/05/16 Python
Python生成六万个随机,唯一的8位数字和数字组成的随机字符串实例
2020/03/03 Python
python实现俄罗斯方块小游戏
2020/04/24 Python
Django数据模型中on_delete使用详解
2020/11/30 Python
中国首家奢侈品O2O网购平台:第五大道奢侈品网
2017/12/14 全球购物
中学生班主任评语
2014/01/30 职场文书
“学雷锋活动月”总结
2014/03/09 职场文书
餐厅筹备计划书
2014/04/25 职场文书
党支部组织生活会整改方案
2014/09/30 职场文书
个人委托函范文
2015/01/29 职场文书
家长必看:义务教育,不得以面试 评测等名义选拔学生
2019/07/09 职场文书