Javascript元素拖曳操作Byshawl.qiu(兼容IE,Opera,Firefox)
说明:
拖曳流程
鼠标按下->(鼠标移动->元素移动)
鼠标按键弹起->元素停止移动
针对IE,主要使用obj.attachEvent()&&obj.detachEvent()
针对Firefox主要使用DOM2的obj.addEventListener()&&obj.removeEventListener
Opera以上两种方法都支持
在本文中,需要拖曳的元素必须指定style属性为position:absolute;
且应指定left&&top的坐标值,如:
linenum
- <divstyle="border:1pxdashedblue;width:180px;text-align:center;position:absolute;left:100px;top:150px;"onmousedown="fDragging(this,event,true);">
- element1<br/>
- draggingcompatibilityforIE,Opera,Firefox.
- </div>
函数fDragging(obj,e,limit)的各参数解释:
obj:HTML元素对象,要拖曳的元素
e:指定为event对象,主要为兼容Firefox
limit:布尔值,指定是否只能在父元素中拖曳,false可移动至任何位置.
函数fDragging(obj,e,limit)应该在HTMLonmousedown属性下使用,如:
linenum
- <divstyle="border:1pxdashedblue;width:180px;text-align:center;position:absolute;left:50px;top:50px;"onmousedown="fDragging(this,event,true);">
- element<br/>
- draggingcompatibilityforIE,Opera,Firefox.
- </div>
shawl.qiu
2006-11-10
http://blog.csdn.net/btbtd
函数:fDragging(obj,e,limit)及使用演示
linenum
- <!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <htmlxmlns="http://www.w3.org/1999/xhtml">
- <!--DW6-->
- <head>
- <metahttp-equiv="Content-Type"content="text/html;charset=utf-8"/>
- <title>shawl.qiutemplate</title>
- <scripttype="text/javascript">
- //<![CDATA[
- functionfDragging(obj,e,limit){
- if(!e)e=window.event;
- varx=parseInt(obj.style.left);
- vary=parseInt(obj.style.top);
-
- varx_=e.clientX-x;
- vary_=e.clientY-y;
-
- if(document.addEventListener){
- document.addEventListener('mousemove',inFmove,true);
- document.addEventListener('mouseup',inFup,true);
- }elseif(document.attachEvent){
- document.attachEvent('onmousemove',inFmove);
- document.attachEvent('onmouseup',inFup);
- }
-
- inFstop(e);
- inFabort(e)
-
- functioninFmove(e){
- varevt;
- if(!e)e=window.event;
-
- if(limit){
- varop=obj.parentNode;
- varopX=parseInt(op.style.left);
- varopY=parseInt(op.style.top);
-
- if((e.clientX-x_)<0)returnfalse;
- elseif((e.clientX-x_+obj.offsetWidth+opX)>(opX+op.offsetWidth))returnfalse;
-
- if(e.clientY-y_<0)returnfalse;
- elseif((e.clientY-y_+obj.offsetHeight+opY)>(opY+op.offsetHeight))returnfalse;
- //status=e.clientY-y_;
- }
-
- obj.style.left=e.clientX-x_+'px';
- obj.style.top=e.clientY-y_+'px';
-
- inFstop(e);
- }//shawl.qiuscript
- functioninFup(e){
- varevt;
- if(!e)e=window.event;
-
- if(document.removeEventListener){
- document.removeEventListener('mousemove',inFmove,true);
- document.removeEventListener('mouseup',inFup,true);
- }elseif(document.detachEvent){
- document.detachEvent('onmousemove',inFmove);
- document.detachEvent('onmouseup',inFup);
- }
-
- inFstop(e);
- }//shawl.qiuscript
-
- functioninFstop(e){
- if(e.stopPropagation)returne.stopPropagation();
- elsereturne.cancelBubble=true;
- }//shawl.qiuscript
- functioninFabort(e){
- if(e.preventDefault)returne.preventDefault();
- elsereturne.returnValue=false;
- }//shawl.qiuscript
- }
- //]]>
- </script>
- </head>
- <body>
- <divstyle="border:1pxdashedblue;width:760px;height:600px;text-align:center;position:absolute;left:100px;top:10px;">thisparent
-
- <divstyle="border:1pxdashedblue;width:180px;text-align:center;position:absolute;left:50px;top:50px;"onmousedown="fDragging(this,event,true);">
- element<br/>
- draggingcompatibilityforIE,Opera,Firefox.
- </div>
- <divstyle="border:1pxdashedblue;width:180px;text-align:center;position:absolute;left:100px;top:150px;"onmousedown="fDragging(this,event,true);">
- element1<br/>
- draggingcompatibilityforIE,Opera,Firefox.
- </div>
- <divstyle="border:1pxdashedblue;width:180px;text-align:center;position:absolute;left:200px;top:250px;"onmousedown="fDragging(this,event,false);">
- element2<br/>
- draggingcompatibilityforIE,Opera,Firefox.<br/>
- <fontcolor="red">draggingeverywhere</font>
- </div>
- </div>
- </body>
- </html>
来源: http://blog.csdn.net/btbtd/archive/2006/11/10/1377810.aspx
分享到:
相关推荐
javaScript实现DIV简单拖拽
纯Javascript编写的div拖拽以及用鼠标绘制div之间连接线,外部资源仅需要jquery。有以下功能: 1、创建节点 2、节点随鼠标任意拖动 3、切换拖动和画线模式 4、用鼠标绘制两个节点之间带有箭头的连线 5、连接线随节点...
很棒的用Javascript实现DIV的拖拽和添加
javascript实现div的拖拽 html 文件,兼容火狐 IE
JQ JS javascript layui UI组件 元素 div 拖动插件JQ JS javascript layui UI组件 元素 div 拖动插件
附件中有5个不同的网页,使用JavaScript实现div窗口拖动
javascript实现鼠标拖动div的效果。。。
vue实现页面div盒子拖拽排序功能 vue 实现页面div盒子拖拽排序功能前言:目前市面上有很多实现拖拽排序功能的插件和方法,本节不过多累述,只讲一种:css3的transition-group方法 效果图: 1. DOM中使用: ...
javascript浮动div,可拖拽div,遮罩层(div和iframe实现)
一个很好用的javaScript写的小程序,可实现div的拖动、变形。解压后直接拷到程序中就可运行
Asp.net+JavaScript 实现的可拖动、可调节大小的 div层,div层中添加 sql2000 数据 开发工具:Visual2005,兼容Visual2008 数据库名:2010Expo 数据库附加失败可以直接建表manage 表属性manageid,managename,phone,...
javascript div拖动层 ,代码简单。
用javascript拖动div或table等对象。 代码兼容各种浏览器,IE,Firefox,Opera,Safari等。 这里有三种拖动效果。
主要介绍了JavaScript实现DIV层拖动及动态增加新层的方法,设计javascript操作div层的拖动与增加的相关技巧,需要的朋友可以参考下
这是一个超级简单的用javascript实现的div拖动的例子,希望对大家能有所帮助
本文实例为大家分享了JavaScript实现简单拖拽效果的具体代码,供大家参考,具体内容如下 先看实现的效果: 思路:里面用到了三个事件,鼠标按下、移动、松开事件 那么首先创建盒子并且给它赋予css样式 ...
javascript 拖拽 div 源代码,超简单
基于Ext的javascript的DIV上下拖动,
Js无刷新添加新层,拖动DIV层可互换位置的JavaScript实现 Js无刷新添加新层,拖动DIV层可互换位置的JavaScript实现
主要介绍了JavaScript实现可拖拽的拖动层Div的方法,拖拽页面中的div块可实现div块按照拖动轨迹移动的效果,涉及javascript鼠标事件、页面元素样式结合事件函数动态操作的相关技巧,需要的朋友可以参考下