zoukankan      html  css  js  c++  java
  • 【荐】JavaScript制作可伸缩的淡绿色菜单导航

    代码简介:

    【荐】JavaScript制作可伸缩的淡绿色菜单导航,运行一下,您就知道!

    代码内容:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>【荐】JavaScript制作可伸缩的淡绿色菜单导航_网页代码站(www.webdm.cn)</title>
    <script type="text/javascript">
    	//在ID为“js_menu”的div内开始程序
    function initMenu(){
          var pm_menu = new JSMenu("js_menu");
            pm_menu.init();
        }
    //定义主函数
    function JSMenu(id) {
        if (!document.getElementById || !document.getElementsByTagName)
            return false;
        this.menu = document.getElementById(id);
        this.submenus = this.menu.getElementsByTagName("div");
    }
    //引入函数,取得所有span
    JSMenu.prototype.init = function() {
        var mainInstance = this;
        for (var i = 0; i < this.submenus.length; i++)
            this.submenus[i].getElementsByTagName("span")[0].onclick = function() {
                mainInstance.toggleMenu(this.parentNode);
            };
        this.expandOne();
    };
    //展开含"current"的菜单
    JSMenu.prototype.expandOne = function() {
        for (var i = 0; i < this.submenus.length; i++) {
            var links = this.submenus[i].getElementsByTagName("a");
            for (var j = 0; j < links.length; j++){
                if (links[j].className == "current")
                this.expandMenu(this.submenus[i]);
                }
            }
    };
    //变换菜单状态函数
    JSMenu.prototype.toggleMenu = function(submenu) {
        if (submenu.className == "collapsed")
            this.expandMenu(submenu);
        else
            this.collapseMenu(submenu);
    };
    //展开所有菜单函数
    JSMenu.prototype.expandMenu = function(submenu) {
        var fullHeight = submenu.getElementsByTagName("span")[0].offsetHeight;
        var links = submenu.getElementsByTagName("a");
        for (var i = 0; i < links.length; i++)
            fullHeight += links[i].offsetHeight;
        var moveBy = Math.round(5 * links.length);
        
        var mainInstance = this;
        var intId = setInterval(function() {
            var curHeight = submenu.offsetHeight;
            var newHeight = curHeight + moveBy;
            if (newHeight < fullHeight)
                submenu.style.height = newHeight + "px";
            else {
                clearInterval(intId);
                submenu.style.height = "";
                submenu.className = "";
            }
        }, 30);
        this.collapseOthers(submenu);
    };
    //折叠菜单函数
    JSMenu.prototype.collapseMenu = function(submenu) {
        var minHeight = submenu.getElementsByTagName("span")[0].offsetHeight;
        var moveBy = Math.round(5 * submenu.getElementsByTagName("a").length);
        var mainInstance = this;
        var intId = setInterval(function() {
            var curHeight = submenu.offsetHeight;
            var newHeight = curHeight - moveBy;
            if (newHeight > minHeight)
                submenu.style.height = newHeight + "px";
            else {
                clearInterval(intId);
                submenu.style.height = "";
                submenu.className = "collapsed";
            }
        }, 30);
    };
    //折叠其他菜单函数
    JSMenu.prototype.collapseOthers = function(submenu) {
            for (var i = 0; i < this.submenus.length; i++)
                if (this.submenus[i] != submenu && this.submenus[i].className != "collapsed")
                    this.collapseMenu(this.submenus[i]);
    };
    
    </script>
    <style>
      body {
      	font-size:12px;
      }
      p {
      	margin:0;
      	padding:0
      }
      .jsmenu {
      	160px;
      	background:url(http://www.webdm.cn/images/20091230/pm_leftbg.gif) repeat-y;
      	border-bottom:#C4DE9C solid 1px;
      }
      .jsmenu div {
      	background:url(http://www.webdm.cn/images/20091230/jm_tab.gif) no-repeat;
      	overflow:hidden;
      }
      .jsmenu div.collapsed {
      	height:28px;
      }
      .jsmenu div .fath {
      	height:11px;
      	overflow:hidden;
      	display:block;
      	padding:8px 0 8px 26px;
      	color:#2754bb;
      	font-size:14px;
      	cursor:default;
      	background:url(http://www.webdm.cn/images/20091230/jm_exp.gif) no-repeat 10px 10px;
      	border-top:#C4DE9C solid 1px;
      	cursor:pointer;
      }
      .jsmenu div .single {
      	height:27px;
      	overflow:hidden;
      	display:block;
      	padding:0;
      	font-size:14px;
      	background:url(http://www.webdm.cn/images/20091230/jm_sgl.gif) no-repeat 10px 10px;
      	border-top:#C4DE9C solid 1px;
      }
      .jsmenu div .single a {
      	padding:8px 0 8px 26px;
      	display:block;
      	text-decoration:none;
      	font-size:14px;
      	color:#2754bb;
      	cursor:pointer;
      }
      .jsmenu div .single a.current {
      	background:url(http://www.webdm.cn/images/20091230/jm_tabon.gif) no-repeat left top;
      }
      .jsmenu div.collapsed .fath {
      	background:url(http://www.webdm.cn/images/20091230/jm_col.gif) no-repeat 10px 10px;
      }
      .jsmenu div .son {
      	border-top:#C4DE9C solid 1px;
      	padding:8px 0;
      }
      .jsmenu a {
      	padding:7px 0 6px 34px;
      	display:block;
      	color:#565656;
      	text-decoration:none;
      }
      .jsmenu a:hover {
      	color:#F60;
      	text-decoration:none;
      }
      .jsmenu a.current {
      	background:url(http://www.webdm.cn/images/20091230/jm_li.gif) no-repeat;
      }
    </style>
    </head>
    <body onload = "initMenu()">
      <div class="jsmenu" id="js_menu">
        <div>
          <span class="fath">网页代码站</span>
          <p class="son">
            <a class="current" href="#">业界新闻</a>
            <a href="#">技术动态</a>
            <a href="#">八卦评论</a>
          </p>
         </div>
         <div class="collapsed">
           <span class="fath">交互设计</span>
             <p class="son">
               <a href="#">交互设计思想</a>
               <a href="#">用户行为研究</a>
               <a href="#">设计教程</a>
             </p>
         </div>
         <div class="collapsed">
           <span class="fath">视觉设计</span>
             <p class="son">
               <a href="#">配色构图</a>
               <a href="#">技术教程</a>
             </p>
         </div>
         <div class="collapsed">
           <span class="fath">JavaScript</span>
             <p class="son">
               <a href="#">JavaScript基础</a>
               <a href="#">JavaScript框架</a>
               <a href="#">JavaScript源码范例</a>
             </p>
          </div>
          <div><span class="single"><a href="#">酷站</a></span></div>
          <div><span class="single"><a href="#">专题</a></span></div>
         </div>
      </body>
    </html>
    <br>
    <p><a href="http://www.webdm.cn">网页代码站</a> - 最专业的代码下载网站 - 致力为中国站长提供有质量的代码!</p>
    

    代码来自:http://www.webdm.cn/webcode/ef9e7423-3141-4a78-aaf2-ba8d81b047e0.html

  • 相关阅读:
    C++11 新特性之 变长參数模板
    Cocos2dx 3.6源代码编译错误:syntax error : missing &#39;)&#39; before &#39;{&#39;
    android开发中,在java中怎样使用c提供过来char*
    cocos2d-x 3.1.1 学习笔记[11] http请求 + json解析
    T420s成功加装固态硬盘(SSD)
    我对GFWed的一些自己的见解
    css样式布局中position的那些事儿
    Tokyo Tyrant(TTServer)系列(一)-介绍和安装
    Linux 文件描述符和重定向
    装饰模式
  • 原文地址:https://www.cnblogs.com/webdm/p/2042840.html
Copyright © 2011-2022 走看看