zoukankan      html  css  js  c++  java
  • 博客园之生成侧边目录

    说明:

    只能适配二、三、四级目录,当存在二级标题时,以二级标题为起始,否则以三级标题为起始,向下展示一级目录.

    JS代码:

    <script language="javascript" type="text/javascript">
        function GenerateContentList(h23) {
            var mainContent = $('#cnblogs_post_body');
            var h2_list = $('#cnblogs_post_body').children(h23);
    
            if (mainContent.length < 1)
                return;
    
            if (h2_list.length > 0) {
                var content = '<a name="_labelTop"></a>';
                content += '<div id="navCategory">';
                content += '<p id="mylist" style="font-size:30px"><b>目录</b></p>';
                content += '<ul id="myul"><li style="text-align: right"><b id="guanbi" style="cursor: pointer">x</b></li>';
                for (var i = 0; i < h2_list.length; i++) {
                    var go_to_top = '<div style="text-align: right"><a href="#_labelTop">Top~~</a><a name="_label' + i + '"></a></div>';
                    $(h2_list[i]).before(go_to_top);
    
                    var h3_list = $(h2_list[i]).nextAll("h3");
                    var li3_content = '';
                    for (var j = 0; j < h3_list.length; j++) {
                        var tmp = $(h3_list[j]).prevAll('h2').first();
                        if (!tmp.is(h2_list[i]))
                            break;
                        var li3_anchor = '<a name="_label' + i + '_' + j + '"></a>';
                        $(h3_list[j]).before(li3_anchor);
                        li3_content += '<li><a href="#_label' + i + '_' + j + '">' + $(h3_list[j]).text() + '</a></li>';
                    }
    
                    var li2_content = '';
                    if (li3_content.length > 0)
                        li2_content = '<li><a href="#_label' + i + '">' + $(h2_list[i]).text() + '</a><ul>' + li3_content + '</ul></li>';
                    else
                        li2_content = '<li><a href="#_label' + i + '">' + $(h2_list[i]).text() + '</a></li>';
                    content += li2_content;
                }
                content += '</ul>';
                if ($('#cnblogs_post_body').length != 0) {
                    $($('#cnblogs_post_body')[0]).prepend(content);
                }
            }
        }
    
        if ($('#cnblogs_post_body h2').length > 0) {
            GenerateContentList('h2');
        } else {
            GenerateContentList('h3');
        }
        jQuery('#mylist').click(function () {
            var my_list = jQuery(this);
            var my_mulu = jQuery('#myul');
            my_list.stop();
            my_mulu.stop();
            my_list.slideUp(400);
            my_mulu.fadeIn(600);
        });
        $('#guanbi').click(function () {
            var my_list = jQuery('#mylist');
            var my_mulu = jQuery('#myul');
            my_list.stop();
            my_mulu.stop();
            my_list.slideDown(400);
            my_mulu.fadeOut(600);
        })
    </script>
    

    CSS样式:

    #navCategory {
        position: fixed;
        right: 0;
        top: 100px;
        list-style: none;
        z-index: 99999;
    }
    
    #navCategory > #mylist {
        position: absolute;
        background-color: white;
         32px;
        left: -32px;
        font-size: 30px;
        font-weight: bold;
        border-radius: 5px;
        opacity: 0.8;
    }
    
    #navCategory > #myul {
        background-color: white;
        height: 400px;
         230px;
        padding-top: 5px;
        overflow: auto;
        display: none;
    }
    
    #navCategory ul, #navCategory li {
        list-style: none !important;
        margin: 5px !important;
    }
    
  • 相关阅读:
    django缓存机制
    RBAC基于角色访问控制
    Book系列十大接口
    xadmin的使用
    JWT认证
    自动生成接口文档
    drf的过滤排序分页异常处理
    认证权限解析频率
    python学习之内置模块补充
    python学习之内置模块补充作业
  • 原文地址:https://www.cnblogs.com/zyyhxbs/p/11421975.html
Copyright © 2011-2022 走看看