js的高手进来看看。
我想实现这样的功能,就是在网页的左边有个菜单,鼠标移过去时菜单就出来,移开就缩到里面,移过去后鼠标点击能拖动这个菜单到任何地方,然后在菜单上要有个按钮或者其他什么东西,如一个叉叉。点这个后这个菜单就回到原来的地方。高手们谁能帮忙啊?分不够我再加。给个源码。
[解决办法]
<style type="text/css"><!--*{margin:0;padding:0;border:0;}body {font-family: arial, 宋体, serif;font-size:12px;}#nav {line-height: 24px; list-style-type: none; background:#666;}#nav a {display: block; width: 80px; text-align:center;}#nav a:link {color:#666; text-decoration:none;}#nav a:visited {color:#666;text-decoration:none;}#nav a:hover {color:#FFF;text-decoration:none;font-weight:bold;}#nav li {float: left; width: 80px; background:#CCC;}#nav li a:hover{background:#999;}#nav li ul {line-height: 27px; list-style-type: none;text-align:left;left: -999em; width: 180px; position: absolute; }#nav li ul li{float: left; width: 180px;background: #F6F6F6; }#nav li ul a{display: block; width: 180px;w\idth: 156px;text-align:left;padding-left:24px;}#nav li ul a:link {color:#666; text-decoration:none; }#nav li ul a:visited {color:#666;text-decoration:none;}#nav li ul a:hover {color:#F3F3F3;text-decoration:none;font-weight:normal;background:#C00;}#nav li:hover ul {left: auto;}#nav li.sfhover ul {left: auto;}#content {clear: left; }--></style> <script type=text/javascript><!--//--><![CDATA[//><!--function menuFix() {var sfEls = document.getElementById("nav").getElementsByTagName("li");for (var i=0; i<sfEls.length; i++) {sfEls[i].onmouseover=function() {this.className+=(this.className.length>0? " ": "") + "sfhover";}sfEls[i].onMouseDown=function() {this.className+=(this.className.length>0? " ": "") + "sfhover";}sfEls[i].onMouseUp=function() {this.className+=(this.className.length>0? " ": "") + "sfhover";}sfEls[i].onmouseout=function() {this.className=this.className.replace(new RegExp("( ?|^)sfhover\\b"), "");}}}window.onload=menuFix; //--><!]]></script> </head><ul id="nav"><li><a href="#">产品介绍</a><ul><li><a href="#">四季情缘</a></li><li><a href="#">四季情缘</a></li><li><a href="#">四季情缘</a></li><li><a href="#">四季情缘</a></li><li><a href="#">四季情缘</a></li><li><a href="#">四季情缘</a></li></ul></li><li><a href="#">服务介绍</a><ul><li><a href="#">四季情缘工作室</a></li><li><a href="#">四季情缘工作室</a></li><li><a href="#">服务二</a></li><li><a href="#">服务二服务二</a></li><li><a href="#">四季情缘工作室</a></li> <li><a href="#">服务二</a></li></ul></li><li><a href="#">成功案例</a><ul><li><a href="#">案例三</a></li><li><a href="#">案例</a></li><li><a href="#">案例三案例三</a></li><li><a href="#">案例三案例三案例三</a></li></ul></li><li><a href="#">关于我们</a><ul><li><a href="#">我们四</a></li><li><a href="#">我们四</a></li><li><a href="#">我们四</a></li><li><a href="#">我们四111</a></li></ul></li> <li><a href="#">在线演示</a><ul><li><a href="#">演示</a></li><li><a href="#">演示</a></li><li><a href="#">演示</a></li><li><a href="#">演示演示演示</a></li><li><a href="#">演示演示演示</a></li><li><a href="#">演示演示</a></li><li><a href="#">演示演示演示</a></li><li><a href="#">演示演示演示演示演示</a></li></ul></li><li><a href="#">联系我们</a><ul><li><a href="#">联系联系联系联系联系</a></li><li><a href="#">联系联系联系</a></li><li><a href="#">联系</a></li><li><a href="#">联系联系</a></li> <li><a href="#">联系联系</a></li><li><a href="#">联系联系联系</a></li><li><a href="#">联系联系联系</a></li></ul></li></ul></body>
[解决办法]
IE6.0和FF2.0测试通过
<html><head><title>菜单收缩移动</title><meta http-equiv="content-type" content="text/html;charset=gb2312"/><style type="text/css">.DragCss{cursor:move}.NormalCss{cursor:default}body{font-size:10pt}td{font-size:10pt}</style></head><body><script type="text/javascript">var OldX,OldY,tbWidth,tbHeight;var ox,oy,ex,ey,IsDrag=false,DragObj=null;//移动时需要的变量window.onload=InitMenu;document.onmouseup=MouseUp;document.onmousemove=MouseMove;document.onmousedown=MouseDown;function InitMenu(){ var Menu=document.getElementById("Menu"); tbWidth=parseInt(Menu.offsetWidth); tbHeigth=parseInt(Menu.offsetHeigth); OldY=0; OldX=-(tbWidth-20); Menu.style.top=OldY+"px"; Menu.style.left=OldX+"px"; Menu.onmouseover=MouseOver; Menu.onmouseout=MouseOut;}function MouseOver(){ var Menu=document.getElementById("Menu"); if(parseInt(Menu.style.top)==0) { Menu.style.left="0px"; }}function MouseOut(){ var Menu=document.getElementById("Menu"); if(parseInt(Menu.style.top)==0) { Menu.style.left=OldX+"px"; }}function MouseMove(e){ if(IsDrag) { hadMove=true; e=e?e:event; DragObj.style.left=ox+parseInt(e.clientX-ex)+"px"; DragObj.style.top=oy+parseInt(e.clientY-ey)+"px"; }}function MouseDown(e){ e=e?e:event; var tag=e.target?e.target:e.srcElement; while(tag!=null) { if(tag.className=="NormalCss") { DragObj=tag; DragObj.className="DragCss"; IsDrag=true; ox=parseInt(DragObj.style.left); oy=parseInt(DragObj.style.top); ex=parseInt(e.clientX); ey=parseInt(e.clientY); break; } else tag=tag.parentNode; } }function MouseUp(){ var Menu=document.getElementById("Menu"); DragObj=null; IsDrag=false; Menu.className="NormalCss";}function ResetPos(){ var Menu=document.getElementById("Menu"); Menu.style.top=OldY+"px"; Menu.style.left=OldX+"px";}</script><table border='1' id='Menu' class="NormalCss" cellspacing='2' cellpadding='0' style="position:absolute;top:0px;left:0px"><tr><td align='right'><a href='#' onclick="ResetPos()">还原</a></td><td rowspan="6" valign="middle" style="width:10px">测试菜单</td></tr><tr><td>测试菜单1</td></tr><tr><td>测试菜单2</td></tr><tr><td>测试菜单3</td></tr><tr><td>测试菜单4</td></tr><tr><td>测试菜单5</td></tr></table></body></html>