100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > Javascript 元素拖曳操作 By shawl.qiu (兼容IE Opera Firefox)

Javascript 元素拖曳操作 By shawl.qiu (兼容IE Opera Firefox)

时间:2022-02-07 06:31:32

相关推荐

Javascript  元素拖曳操作 By shawl.qiu (兼容IE Opera Firefox)

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;"οnmοusedοwn="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;"οnmοusedοwn="fDragging(this,event,true);"> element<br/> draggingcompatibilityforIE,Opera,Firefox. </div>

shawl.qiu

-11-10

/btbtd

函数:fDragging(obj,e,limit)及使用演示

linenum<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <htmlxmlns="/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;"οnmοusedοwn="fDragging(this,event,true);"> element<br/> draggingcompatibilityforIE,Opera,Firefox. </div> <divstyle="border:1pxdashedblue;width:180px;text-align:center;position:absolute;left:100px;top:150px;"οnmοusedοwn="fDragging(this,event,true);"> element1<br/> draggingcompatibilityforIE,Opera,Firefox. </div> <divstyle="border:1pxdashedblue;width:180px;text-align:center;position:absolute;left:200px;top:250px;"οnmοusedοwn="fDragging(this,event,false);"> element2<br/> draggingcompatibilityforIE,Opera,Firefox.<br/> <fontcolor="red">draggingeverywhere</font> </div> </div> </body> </html>

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。