zoukankan      html  css  js  c++  java
  • day10—jQuery初步实践,关于菜单

    转行学开发,代码100天——2018-03-26

    今天是本人写开发记录方面博客的第10天了,不知不觉已经涉及到jQuery框架的学习了。

    第一次熬夜写前端代码还是两年前,不过中途放弃了,学的东西也日渐生疏,但今日持续敲代码的过程中,还是能找回一些当年的感觉了,有一些不同的是,如今需要更强的克制和执行,也多了些功利心理。

    不多说,今天记录一下通过jQuery实现垂直和水平菜单功能,缺少配图,重点提供实现的思路。

    菜单实现一般都是通过ul,li列表实现的,每个菜单项关联一个链接,即a标签。个人觉得垂直布局和水平布局的实现主要有两个方面的工作,一是菜单内容的布局调整,如位置,字体,背景等,即CSS设计部分;二是菜单操作的交互,即通过jQuery实现对菜单内容的HTML和样式CSS部分的操作(修改,动画等)。

    本文的功能实现还相对简单,仅作为记录,若能有益于他人,则不甚欣慰。

    垂直菜单&水平菜单

    HTML

    <!DOCTYPE html>
    <html>
    <head>
        <title></title>
        <meta charset="utf-8">
        <link rel="stylesheet" type="text/css" href="mycss.css">
        <script type="text/javascript" src="jquery-3.3.1.min.js"></script>
        <script type="text/javascript" src="myjs.js"></script>
    </head>
    <body>
        <!--垂直菜单-->
        <ul>
            <li class="main">
                <a href="#">菜单1</a>
                <ul>
                    <li><a href="#">子菜单1</a></li>
                    <li><a href="#">子菜单1</a></li>
                </ul>
                
            </li>
            <li class="main">
                <a href="#">菜单2</a>
                <ul>
                    <li><a href="#">子菜单1</a></li>
                    <li><a href="#">子菜单1</a></li>
                </ul>
                
            </li>
            <li class="main">
                <a href="#">菜单3</a>
                <ul>
                    <li><a href="#">子菜单1</a></li>
                    <li><a href="#">子菜单1</a></li>
                </ul>
                
            </li>
        </ul>
    
        <!--水平菜单-->
    
        <br/><br/><br/><br/>
        <p>水平菜单</p>
        <ul>
            <li class="hmain">
                <a href="#">菜单1</a>
                <ul>
                    <li><a href="#">子菜单1</a></li>
                    <li><a href="#">子菜单1</a></li>
                </ul>
                
            </li>
            <li class="hmain">
                <a href="#">菜单2</a>
                <ul>
                    <li><a href="#">子菜单1</a></li>
                    <li><a href="#">子菜单1</a></li>
                </ul>            
            </li>
            <li class="hmain">
                <a href="#">菜单3</a>
                <ul>
                    <li><a href="#">子菜单1</a></li>
                    <li><a href="#">子菜单1</a></li>
                </ul>
                
            </li>
        </ul>
    
    </body>
    </html>

     CSS部分:

    *{
        margin:0;
        padding: 0;
    }
    ul,li
    {
        text-decoration: none;
    }
    ul
    {
      
    }
    .main,.hmain
    {
        /*可添加背景图片 */
        /*background-image: url();
        background-repeat: repeat-x;*/
        width: 100px;
    }
    li
    {
        background-color: #eee;
    }
    a{
        text-decoration: none;
        padding-left: 20px;
        width: 80px;
        padding-top: 3px;
        padding-bottom: 3px;
        display: block;
        
    }
    .main a,.hmain a
    {
        /*color: white;*/
        /*background-image: url(images/collapsed.gif);*/
         background-repeat: none;
         background-position: 3px center;
    }
    .main li a,.hmain li a
    {
        color: black;
        background-image: none;
    }
    .main ul,.hmain ul
    {
        display: none;
    }
    .hmain
    {
      float: left;
      margin-right: 3px;
    }
     
    jQuery实现菜单动作:
    $(document).ready(function()
    {
      $(".main>a").click(function()
      {
          // alert("点击了");
        var ulNode = $(this).next("ul");
        //方法1
        // if (ulNode.css("display")=="none") {
        //     ulNode.css("display","block");
        // }else
        // {
        //     ulNode.css("display","none");
        // }
        //方法2
        // if (ulNode.css("display")=="none") {
        //     ulNode.show();
        // }else
        // {
        //     ulNode.hide();
        // }
        //方法3
          // ulNode.toggle(1000);
        //方法4
        //  if (ulNode.css("display")=="none") {
        //     ulNode.slideDown(500);
        // }else
        // {
        //     ulNode.slideUp();
        // }
        //方法5
        ulNode.slideToggle(1000);
      });
    
      $(".hmain").hover(function()
      {
          var ulNode =$(this).children("ul");
          ulNode.slideDown();
      },function()
      {
          var ulNode =$(this).children("ul");
          ulNode.slideUp();
    
      });
    });

    至此,就实现了一个简单的菜单效果。可作为日后正式网页设计时的参考或者部分重用。

     
    另:
    *本人在写这段CSS样式时,误把.main,.hmain的  100px;属性写到ul样式里,结果是在水平菜单中始终无法实现横排浮动。
     
    此外,由于未设计菜单背景及图片,导致上述的菜单过于简陋(不美观)。
     
    写完今天的记录,抓紧时间学习今天的课程,明天一大早又要出差了。。。
     
    心未老,即奋不顾身!
  • 相关阅读:
    VMware16Pro永久激活key密钥亲测可用
    软件客户端激活码设计思路
    Android 监听外部U盘插入事件
    分享一款由python开发的全能多线程抢购神器,支持华为、京东、淘宝等商城
    android遇见Uninitialized object exists on backward branch 142解决办法
    android framework-下载Android系统源代码
    android-windowManager使用实例
    理解Android Framework
    4种常用线程池介绍
    谈一款MOBA类游戏《码神联盟》的服务端架构设计与实现 (转载)
  • 原文地址:https://www.cnblogs.com/allencxw/p/8654466.html
Copyright © 2011-2022 走看看