用js实现的鼠标滑动菜单效果

发布于 2022-09-03 20:04:53 字数 10932 浏览 5 评论 0

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
  5. <title>滑动门通用JS</title>
  6. <style type="text/css">
  7. <!--
  8. body{margin:0px;padding:0px;font-size:12px;background:#eee;line-height:20px;}
  9. .bodyer{width:760px;margin:20px auto auto;border:1px dotted #ccc;background:#fff;}
  10. .t_rt{text-align:right;}
  11. h1,h2,h3,h4,h5,h6{font-weight:bold;margin:0px;padding:0px;font-size:12px;}
  12. ul,li{margin:0px;padding:0px;}
  13. li{list-style-type:none;}
  14. h1{margin:10px;padding-right:10px;padding-bottom:5px;border-bottom:1px dotted #ccc;}
  15. .preview{margin:10px;padding:10px;overflow:hidden;background:#eee;}
  16. .cont{padding:10px;}
  17. .cls{clear:both;}
  18. .hidden{display:none;}
  19. #sourse{border:1px dotted #ccc;width:600px;height:300px;margin:0px auto;}
  20. .textDiv{margin:10px 40px 10px;text-align:center;}
  21. h2{margin:0px 10px;background:#ccc;padding:5px;}
  22. .example{margin:10px;background:#FFF;border:1px dotted #ccc;padding:10px;}
  23. .scrolldoorFrame{width:400px;margin:0px auto;overflow:hidden;}
  24. .scrollUl{width:400px;border-bottom:1px solid #CCC;overflow:hidden;height:35px;}
  25. .scrollUl li{float:left;}
  26. .bor03{border:1px solid #ccc;border-top-width:0px;}
  27. .sd01{cursor:pointer;border:1px solid #CCC;background:#FFF;margin:5px;padding:2px;font-weight:bold;}
  28. .sd02{cursor:pointer;border:0px solid #CCC;margin:5px;padding:2px;}
  29. -->
  30. </style>
  31. <script type="text/javascript">
  32. function scrollDoor(){
  33. }
  34. scrollDoor.prototype = {
  35. sd : function(menus,divs,openClass,closeClass){
  36.   var _this = this;
  37.   if(menus.length != divs.length)
  38.   {
  39.    alert("菜单层数量和内容层数量不一样!");
  40.    return false;
  41.   }   
  42.   for(var i = 0 ; i < menus.length ; i++)
  43.   {
  44.    _this.$(menus[i]).value = i;   
  45.    _this.$(menus[i]).onmouseover = function(){
  46.      
  47.     for(var j = 0 ; j < menus.length ; j++)
  48.     {      
  49.      _this.$(menus[j]).className = closeClass;
  50.      _this.$(divs[j]).style.display = "none";
  51.     }
  52.     _this.$(menus[this.value]).className = openClass;
  53.     _this.$(divs[this.value]).style.display = "block";   
  54.    }
  55.   }
  56.   },
  57. $ : function(oid){
  58.   if(typeof(oid) == "string")
  59.   return document.getElementById(oid);
  60.   return oid;
  61. }
  62. }
  63. window.onload = function(){
  64. var SDmodel = new scrollDoor();
  65. SDmodel.sd(["m01","m02","m03","m04","m05"],["c01","c02","c03","c04","c05"],"sd01","sd02");
  66. SDmodel.sd(["mm01","mm02","mm03","mm04","mm05"],["cc01","cc02","cc03","cc04","cc05"],"sd01","sd02");
  67. SDmodel.sd(["mmm01","mmm02","mmm03","mmm04","mmm05"],["ccc01","ccc02","ccc03","ccc04","ccc05"],"sd01","sd02");
  68. }
  69. </script>
  70. </head>
  71. <body>
  72. <div class="bodyer">
  73. <h1 class="t_rt">
  74.   滑动门封装类
  75. </h1>
  76. <h2>
  77.   效果预览
  78. </h2>
  79. <div class="preview">
  80.   <div class="scrolldoorFrame">
  81.    <ul class="scrollUl">
  82.     <li class="sd01" id="m01">滑动门</li>
  83.     <li class="sd02" id="m02">滑动门</li>
  84.     <li class="sd02" id="m03">滑动门</li>
  85.     <li class="sd02" id="m04">滑动门</li>
  86.     <li class="sd02" id="m05">滑动门</li>
  87.    </ul>
  88.    <div class="bor03 cont">
  89.     <div id="c01">
  90.      第一层内容
  91.     </div>
  92.     <div id="c02" class="hidden">
  93.      第二层内容
  94.     </div>
  95.     <div id="c03" class="hidden">
  96.      第三层内容
  97.     </div>
  98.     <div id="c04" class="hidden">
  99.      第四层内容
  100.     </div>
  101.     <div id="c05" class="hidden">
  102.      第五层内容
  103.     </div>
  104.    </div>
  105.   </div>
  106. </div>
  107. <div class="preview">
  108.   <div class="scrolldoorFrame">
  109.    <ul class="scrollUl">
  110.     <li class="sd01" id="mm01">滑动门</li>
  111.     <li class="sd02" id="mm02">滑动门</li>
  112.     <li class="sd02" id="mm03">滑动门</li>
  113.     <li class="sd02" id="mm04">滑动门</li>
  114.     <li class="sd02" id="mm05">滑动门</li>
  115.    </ul>
  116.    <div class="bor03 cont">
  117.     <div id="cc01">
  118.      第一层内容
  119.     </div>
  120.     <div id="cc02" class="hidden">
  121.      第二层内容
  122.     </div>
  123.     <div id="cc03" class="hidden">
  124.      第三层内容
  125.     </div>
  126.     <div id="cc04" class="hidden">
  127.      第四层内容
  128.     </div>
  129.     <div id="cc05" class="hidden">
  130.      第五层内容
  131.     </div>
  132.    </div>
  133.   </div>
  134. </div>
  135. <div class="preview">
  136.   <div class="scrolldoorFrame">
  137.    <ul class="scrollUl">
  138.     <li class="sd01" id="mmm01">滑动门</li>
  139.     <li class="sd02" id="mmm02">滑动门</li>
  140.     <li class="sd02" id="mmm03">滑动门</li>
  141.     <li class="sd02" id="mmm04">滑动门</li>
  142.     <li class="sd02" id="mmm05">滑动门</li>
  143.    </ul>
  144.    <div class="bor03 cont">
  145.     <div id="ccc01">
  146.      第一层内容
  147.     </div>
  148.     <div id="ccc02" class="hidden">
  149.      第二层内容
  150.     </div>
  151.     <div id="ccc03" class="hidden">
  152.      第三层内容
  153.     </div>
  154.     <div id="ccc04" class="hidden">
  155.      第四层内容
  156.     </div>
  157.     <div id="ccc05" class="hidden">
  158.      第五层内容
  159.     </div>
  160.    </div>
  161.   </div>
  162. </div>
  163. </div>
  164. </body>
  165. </html>

复制代码调用:
function scrollDoor(){
}
scrollDoor.prototype = {
sd : function(menus,divs,openClass,closeClass){
var _this = this;
if(menus.length != divs.length)
{
alert("菜单层数量和内容层数量不一样!");
return false;
}
for(var i = 0 ; i < menus.length ; i++)
{
_this.$(menus).value = i;
_this.$(menus).onmouseover = function(){

for(var j = 0 ; j < menus.length ; j++)
{
_this.$(menus[j]).className = closeClass;
_this.$(divs[j]).style.display = "none";
}
_this.$(menus[this.value]).className = openClass;
_this.$(divs[this.value]).style.display = "block";
}
}
},
$ : function(oid){
if(typeof(oid) == "string")
return document.getElementById(oid);
return oid;
}
}

使用方法:

1.把以上代码引进你的页面

<script type="text/javascript" src="scrollDoor.js"></script>

2.在页面的"<body>"标签前加入以下代码:

<script type="text/javascript">
var SDmodel = new scrollDoor();
SDmodel.sd([菜单id数组],[显示层id数组],"菜单触发类","菜单关闭类");
SDmodel.sd([菜单id数组2],[显示层id数组2],"菜单触发类","菜单关闭类");
SDmodel.sd([菜单id数组3],[显示层id数组3],"菜单触发类","菜单关闭类");
</script>

其中sd方法中的参数为:

参数一 [菜单id数组]:滑动门菜单的id
参数二 [内容id数组]:显示和隐藏滑动内容层的id
参数三 "菜单触发类":鼠标经过滑动门菜单的类
参数四 "菜单关闭类":鼠标滑出滑动门菜单的类

3.页面中有几个滑动门就调用几次sd函数,只需改变sd调用的参数,如以上代码上所展示.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文