您好,欢迎访问一九零五行业门户网

JS实现可展开折叠层的鼠标拖曳效果_javascript技巧

本文实例讲述了js实现可展开折叠层的鼠标拖曳效果。分享给大家供大家参考。具体如下:
这是一款简单js代码实现的鼠标拖曳图层效果,比较精简,大家参考一下。鼠标点击层标题栏可实现层内容的展开与折叠,按住标题栏可实现层的拖动。
运行效果截图如下:
在线演示地址如下:
http://demo.jb51.net/js/2015/js-fade-out-mouse-draw-style-demo/
具体代码如下:
<!doctype html public "-//w3c//dtd html 4.01 transitional//en" "http://www.w3.org/tr/html4/loose.dtd"> <html> <head> <title>鼠标拖曳</title> </head> <body> <script type="text/javascript"> function drag(elementtodrag,event){ var startx=event.clientx,starty=event.clienty; var origx=elementtodrag.offsetleft,origy=elementtodrag.offsettop; var deltax=startx-origx,deltay=starty-origy; if(document.addeventlistener){ document.addeventlistener("mousemove",movehandler,true); document.addeventlistener("mouseup",uphandler,true); } else{ elementtodrag.setcapture(); elementtodrag.attachevent("onmousemove",movehandler); elementtodrag.attachevent("onmouseup",uphandler); elementtodrag.attachevent("onlosecapture",uphandler); } if(event.stoppropagation) event.stoppropagation(); else event.cancelbubble=true; if(event.preventdefault) event.preventdefault(); else event.returnvalue=false; function movehandler(e){ if(!e) e=window.event; elementtodrag.style.left=(e.clientx-deltax)+"px"; elementtodrag.style.top=(e.clienty-deltay)+"px"; elementtodrag.style.zindex="10"; elementtodrag.getelementsbytagname("p")[0].innerhtml="clientx:"+e.clientx+" </br>"+"clienty:"+e.clienty+"</br>"+"offsetleft:"+origx+"</br> "+"offsettop:"+origy+"</br>"+"clientx-offsetleft:"+deltax+"</br>"+"clienty-offsettop:"+deltay+"</br>"; if(e.stoppropagation) e.stoppropagation(); else e.cancelbubble = true; } function uphandler(e){ if(!e) e=window.event; elementtodrag.style.zindex="1"; if(document.removeeventlistener){ document.removeeventlistener("mouseup",uphandler,true); document.removeeventlistener("mousemove",movehandler,true); } else{ elementtodrag.detachevent("onlosecapture",uphandler); elementtodrag.detachevent("onmouseup",uphandler); elementtodrag.detachevent("onmousemove",movehandler); elementtodrag.releasecapture(); } if(e.stoppropagation) e.stoppropagation(); else e.cancelbubble=true; } } </script> <div style="position:absolute;left:100px;top:100px;width:250px;background-color:#789;border:1px solid #f00"> <div style="background:#ccc;border-bottom:dotted black;padding:3px;font-weight:bold" onmousedown="drag(this.parentnode,event)">drag me1</div> <p>test</p> </div> <div style="position:absolute;left:100px;top:200px;width:250px;background-color:#789;border:1px solid #f00"> <div style="background:#ccc;border-bottom:dotted black;padding:3px;font-weight:bold" onmousedown="drag(this.parentnode,event)">drag me2</div> <p>test</p> </div> <div style="position:absolute;left:100px;top:300px;width:250px;background-color:#789;border:1px solid #f00"> <div style="background:#ccc;border-bottom:dotted black;padding:3px;font-weight:bold" onmousedown="drag(this.parentnode,event)">drag me3</div> <p>test</p> </div> </body> </html>
以上就是js实现可展开折叠层的鼠标拖曳效果_javascript技巧的内容。
其它类似信息

推荐信息