• 网站开发常用jQuery插件总结(十)菜单插件superfish


    网站对于菜单的依赖其实并不是很大,我们完全可以不使用菜单来设计网站,显示网站内容。但是如果网站的分类太多,“也许”使用菜单作为网站导航可以使 用户 更方便的寻找内容。superfish插件就是用于实现菜单的功能。但是在使用superfish时,与自身网站整合、superfish样式设置是不可避免的。因为官方只给出了怎么使用插件,并且提供了一个简单的样式。如下图:


    在我以前的使用中,superfish不符合我的需求,所以我对superfish的样式进行了修改。在本文中,我会提到怎样修改superfish的样式,只是简单的举个例子,不注重颜色的搭配。

    一.superfish插件功能

    实现下拉式菜单功能。主要用于水平菜单、垂直菜单。

    二.superfish官方地址

    http://users.tpg.com.au/j_birch/plugins/superfish/examples/vertical/
    官方地址中有superfish插件的用例,用例很简单。但是在修改样式时确实有些问题,下文会提到样式的修改。

    三.superfish使用方法

    1.文件引用

    如果是水平菜单,只需要引用下面四个文件。jquery文件,菜单的css样式文件与菜单的js功能文件。

    <link rel="stylesheet" media="screen" href="../dist/css/superfish.css">
    <script src="jquery.js"></script>
    <script src="hoverIntent.js"></script>
    <script src="superfish.js"></script>

    如果是垂直菜单,还需要引用垂直菜单的样式文件。

    <link rel="stylesheet" media="screen" href="superfish-vertical.css">

    2.自定义样式如果我们需要修改superfish样式,主要是修改superfish.css,我们也可以在当前页面覆盖superfish.css中存在的样式。在本例自定义样式中,修改了官方的颜色,去掉了阴影。如下:

    body {
        max-width: 40em;
        font-family:微软雅黑;
    }
    #example{
        margin-bottom:220px;
    }
    /**以下是自定义的菜单的样式**/
    .sf-menu ul{
        box-shadow:none;
    }
    .sf-menu li {
    background: #dbeef7;
    white-space: nowrap;
    -webkit-transition: background .2s;
    transition: background .2s;
    font-size:14px;
    }
    .sf-menu a {
    border:none;
    padding: .75em 1em;
    text-decoration: none;
    zoom: 1;
    border-left: 1px solid #fff;
    border-bottom: 1px solid #fff;
    padding-top:6px;
    padding-right:6px;
    }
    .sf-menu li:hover,.sf-menu li.sfhover{
        background:#e6f1f6;
    }
    /**二级菜单**/
    .sf-menu ul li {
        background: #dbeef7;
    }
    /**三级菜单**/
    .sf-menu ul ul li {
        background: #dbeef7;
    }

    3.js代码。初始化菜单使用的js代码非常简单。只需要几句话就可以实现菜单功能。

    function initsuperfish(){
    //animation动画效果,delay:菜单显示的延迟时间。
    //也可以简单的一句话实现 $('#example').superfish();
    $('#example').superfish({
        animation: {height:'show'},
        delay:       1200
    });
    }
    $(function(){
        $('#horizontal').click(function(){;$('#example').removeClass('sf-vertical'); });
        $('#vertical').click(function(){  $('#example').addClass('sf-vertical'); });
        initsuperfish();
    });

    4.使用的html。superfish主要使用html源码ul来实现菜单的关联功能。html代码有点多,就不贴出来了。有兴趣的可以看下面的“菜单测试”。

    修改后的样式为:

    在线演示:菜单插件superfish

  • 相关阅读:
    java获取指定文件夹下的所有文件名
    org.dom4j.DocumentException: unknown protocol: d Nested exception: unknown
    如何在spring中获取request对象
    Java获取文件后缀名
    解析XML并将信息封装到对象中
    在web项目启动时执行某个方法
    Maven Dependencies没有了的解决办法
    B-树(B+树) 学习总结
    Netty学习笔记之一(Netty解析简单的Http Post Json 请求)
    用到的设计模式总结--单例模式+工厂方法模式+Builder模式
  • 原文地址:https://www.cnblogs.com/imlions/p/3349356.html
Copyright © 2020-2023  润新知