jinmuqq222

参考博客

Css

/*生成博客目录的CSS*/

#uprightsideBar{

font-size:12px;

font-family:Arial, Helvetica, sans-serif;

text-align:left;

position:fixed;/*将div的位置固定到距离top:50px,right:0px的位置,这样div就会处在最右边的位置,距离顶部50px*/

top:50px;

right:0px;

width: auto;

height: auto;

}

#sideBarTab{

float:left;

width:30px;

border:1px solid #e5e5e5;

border-right:none;

text-align:center;

background:#ffffff;

}

 

#sideBarContents{

float:left;

overflow:auto;

overflow-x:hidden;!important;

width:200px;

min-height:108px;

max-height:460px;

border:1px solid #e5e5e5;

border-right:none;

background:#ffffff;

}

#sideBarContents dl{

margin:0;

padding:0;

}

 

#sideBarContents dt{

margin-top:5px;

margin-left:5px;

}

 

#sideBarContents dd, dt {

cursor: pointer;

}

 

#sideBarContents dd:hover, dt:hover {

color:#A7995A;

}

#sideBarContents dd{

margin-left:20px;

}

 

 

 

页首-作用生成右侧目录链接

<script type="text/javascript">

/*

功能:生成博客目录的JS工具

测试:IE8,火狐,google测试通过

孤傲苍狼

2014-5-11

*/

var BlogDirectory = {

/*

获取元素位置,距浏览器左边界的距离(left)和距浏览器上边界的距离(top)

*/

getElementPosition:function (ele) {

var topPosition = 0;

var leftPosition = 0;

while (ele){

topPosition += ele.offsetTop;

leftPosition += ele.offsetLeft;

ele = ele.offsetParent;

}

return {top:topPosition, left:leftPosition};

},

 

/*

获取滚动条当前位置

*/

getScrollBarPosition:function () {

var scrollBarPosition = document.body.scrollTop || document.documentElement.scrollTop;

return scrollBarPosition;

},

 

/*

移动滚动条,finalPos 为目的位置,internal 为移动速度

*/

moveScrollBar:function(finalpos, interval) {

 

//若不支持此方法,则退出

if(!window.scrollTo) {

return false;

}

 

//窗体滚动时,禁用鼠标滚轮

window.onmousewheel = function(){

return false;

};

 

//清除计时

if (document.body.movement) {

clearTimeout(document.body.movement);

}

 

var currentpos =BlogDirectory.getScrollBarPosition();//获取滚动条当前位置

 

var dist = 0;

if (currentpos == finalpos) {//到达预定位置,则解禁鼠标滚轮,并退出

window.onmousewheel = function(){

return true;

}

return true;

}

if (currentpos < finalpos) {//未到达,则计算下一步所要移动的距离

dist = Math.ceil((finalpos - currentpos)/10);

currentpos += dist;

}

if (currentpos > finalpos) {

dist = Math.ceil((currentpos - finalpos)/10);

currentpos -= dist;

}

 

var scrTop = BlogDirectory.getScrollBarPosition();//获取滚动条当前位置

window.scrollTo(0, currentpos);//移动窗口

if(BlogDirectory.getScrollBarPosition() == scrTop)//若已到底部,则解禁鼠标滚轮,并退出

{

window.onmousewheel = function(){

return true;

}

return true;

}

 

//进行下一步移动

var repeat = "BlogDirectory.moveScrollBar(" + finalpos + "," + interval + ")";

document.body.movement = setTimeout(repeat, interval);

},

 

htmlDecode:function (text){

var temp = document.createElement("div");

temp.innerHTML = text;

var output = temp.innerText || temp.textContent;

temp = null;

return output;

},

 

/*

创建博客目录,

id表示包含博文正文的 div 容器的 id,

mt 和 st 分别表示主标题和次级标题的标签名称(如 H2、H3,大写或小写都可以!),

interval 表示移动的速度

*/

createBlogDirectory:function (id, mt, st, interval){

//获取博文正文div容器

var elem = document.getElementById(id);

if(!elem) return false;

//获取div中所有元素结点

var nodes = elem.getElementsByTagName("*");

//创建博客目录的div容器

var divSideBar = document.createElement(\'DIV\');

divSideBar.className = \'uprightsideBar\';

divSideBar.setAttribute(\'id\', \'uprightsideBar\');

var divSideBarTab = document.createElement(\'DIV\');

divSideBarTab.setAttribute(\'id\', \'sideBarTab\');

divSideBar.appendChild(divSideBarTab);

var h2 = document.createElement(\'H2\');

divSideBarTab.appendChild(h2);

var txt = document.createTextNode(\'目录导航\');

h2.appendChild(txt);

var divSideBarContents = document.createElement(\'DIV\');

divSideBarContents.style.display = \'none\';

divSideBarContents.setAttribute(\'id\', \'sideBarContents\');

divSideBar.appendChild(divSideBarContents);

//创建自定义列表

var dlist = document.createElement("dl");

divSideBarContents.appendChild(dlist);

var num = 0;//统计找到的mt和st

mt = mt.toUpperCase();//转化成大写

st = st.toUpperCase();//转化成大写

//遍历所有元素结点

for(var i=0; i<nodes.length; i++)

{

if(nodes[i].nodeName == mt|| nodes[i].nodeName == st)

{

//获取标题文本

var nodetext = nodes[i].innerHTML.replace(/<\/?[^>]+>/g,"");//innerHTML里面的内容可能有HTML标签,所以用正则表达式去除HTML的标签

nodetext = nodetext.replace(/ /ig, "");//替换掉所有的

nodetext = BlogDirectory.htmlDecode(nodetext);

//插入锚

nodes[i].setAttribute("id", "blogTitle" + num);

var item;

switch(nodes[i].nodeName)

{

case mt: //若为主标题

item = document.createElement("dt");

break;

case st: //若为子标题

item = document.createElement("dd");

break;

}

 

//创建锚链接

var itemtext = document.createTextNode(nodetext);

item.appendChild(itemtext);

item.setAttribute("name", num);

item.onclick = function(){ //添加鼠标点击触发函数

var pos = BlogDirectory.getElementPosition(document.getElementById("blogTitle" + this.getAttribute("name")));

if(!BlogDirectory.moveScrollBar(pos.top, interval)) return false;

};

 

//将自定义表项加入自定义列表中

dlist.appendChild(item);

num++;

}

}

 

if(num == 0) return false;

/*鼠标进入时的事件处理*/

divSideBarTab.onmouseenter = function(){

divSideBarContents.style.display = \'block\';

}

/*鼠标离开时的事件处理*/

divSideBar.onmouseleave = function() {

divSideBarContents.style.display = \'none\';

}

 

document.body.appendChild(divSideBar);

}

 

};

 

window.onload=function(){

/*页面加载完成之后生成博客目录*/

BlogDirectory.createBlogDirectory("likecs_post_body","h2","h3",20);

}

</script>

 

 

 

 

 

 

 

 

页脚html代码

<script language="javascript" type="text/javascript">

// 生成目录索引列表

// ref: http://www.cnblogs.com/wangqiguo/p/4355032.html

// modified by: zzq

function GenerateContentList()

{

var mainContent = $(\'#likecs_post_body\');

var h2_list = $(\'#likecs_post_body h2\');//如果你的章节标题不是h2,只需要将这里的h2换掉即可

 

if(mainContent.length < 1)

return;

 

if(h2_list.length>0)

{

var content = \'<a name="_labelTop"></a>\';

content += \'<div id="navCategory" style="color:#152e97;">\';

content += \'<p style="font-size:18px;"><b>目录</b></p>\';

content += \'<ul>\';

for(var i=0; i<h2_list.length; i++)

{

var go_to_top = \'<div style="text-align: right;"><a href="#_labelTop" style="color:#f68a33">回到顶部</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>\';

content += \'</div><p>&nbsp;</p>\';

content += \'<hr style="height:1px;border:none;border-top:1px dashed #0066CC;"/>\';

if($(\'#likecs_post_body\').length != 0 )

{

$($(\'#likecs_post_body\')[0]).prepend(content);

}

}

}

 

GenerateContentList();

</script>

 

 

 

博客园-秒音天女

[为博客园添加目录的方法总结 - 妙音天女 - 博客园](https://www.cnblogs.com/xuehaoyue/p/6650533.html

 

<html lang="zh-cn"><head>

<meta charset="utf-8">

<meta name="viewport" content="width=device-width, initial-scale=1.0">

<meta name="referrer" content="never">

<meta property="og:description" content="参考链接: 第一种:在正文上方直接添加目录 1. 申请开通js权限 默认是不支持,需要打开博客园后台,进入"设置"标签页,点击"申请开通js权限",并注明用途 如果想加快申请速度,也可以再向官方发个邮">

<meta http-equiv="Cache-Control" content="no-transform">

<meta http-equiv="Cache-Control" content="no-siteapp">

<meta http-equiv="X-UA-Compatible" content="IE=edge">

<title>为博客园添加目录的方法总结 - 妙音天女 - 博客园</title>

<link id="favicon" rel="shortcut icon" href="//common.cnblogs.com/favicon.ico?v=20200522" type="image/x-icon">

 

<link rel="stylesheet" href="/css/blog-common.min.css?v=7Pwqzj5EBy4dBv4DJNI181rFKP8_OF0hT7jO3o8jAa0">

<link id="MainCss" rel="stylesheet" href="/skins/red_autumnal_leaves/bundle-red_autumnal_leaves.min.css?v=eYry4v2FokppvT7fmPg3DGeBoc4qFOj6-DhKpxeIDUE">

<link type="text/css" rel="stylesheet" href="https://www.cnblogs.com/xuehaoyue/custom.css?v=fwyjZnXOr8U9MHuEBYXiLjG6tzQ=">

<link id="mobile-style" media="only screen and (max-width: 767px)" type="text/css" rel="stylesheet" href="/skins/red_autumnal_leaves/bundle-red_autumnal_leaves-mobile.min.css?v=-9jRKRAEeEtlr5EkSG-LpMBRHz2PN0kolWZ1uU8dFT4">

 

<link type="application/rss+xml" rel="alternate" href="https://www.cnblogs.com/xuehaoyue/rss">

<link type="application/rsd+xml" rel="EditURI" href="https://www.cnblogs.com/xuehaoyue/rsd.xml">

<link type="application/wlwmanifest+xml" rel="wlwmanifest" href="https://www.cnblogs.com/xuehaoyue/wlwmanifest.xml">

<script async="" src="https://www.google-analytics.com/analytics.js"></script><script>

var currentBlogId = 329862;

var currentBlogApp = \'xuehaoyue\';

var cb_enable_mathjax = false;

var isLogined = true;

var isBlogOwner = false;

var skinName = \'red_autumnal_leaves\';

var visitorUserId = \'a693a5ff-d75d-452a-4edb-08d5af5cce02\';

</script>

<script>

var currentPostDateAdded = \'2017-03-31 11:40\';

</script>

<script src="https://common.cnblogs.com/scripts/jquery-2.2.0.min.js"></script>

<script src="/js/blog-common.min.js?v=Uo4ymXJm9Uae70e1QiD0VXEYnmJBktRs6o-wOPBmwyQ"></script>

 

 

 

</head>

<body>

<a name="top"></a>

<div id="page_begin_html"><script type="text/javascript">window[\'__document_write_ajax_callbacks__\'][\'2\']();</script><script type="text/javascript">window[\'__document_write_ajax_callbacks__\'][\'1\']();</script></div>

 

<!--done-->

<div id="home">

<div id="header">

    <div id="blogTitle">

<a id="lnkBlogLogo" href="https://www.cnblogs.com/xuehaoyue/"><img id="blogLogo" src="/skins/custom/images/logo.gif" alt="返回主页"></a>        

        

<!--done-->

<h1><a id="Header1_HeaderTitle" class="headermaintitle HeaderMainTitle" href="https://www.cnblogs.com/xuehaoyue/">妙音天女</a>

</h1>

<h2>

 

</h2>

 

 

 

 

        

    </div><!--end: blogTitle 博客的标题和副标题 -->

    <div id="navigator">

        

<ul id="navList">

<li><a id="blog_nav_sitehome" class="menu" href="https://www.cnblogs.com/">

博客园</a>

</li>

<li>

<a id="blog_nav_myhome" class="menu" href="https://www.cnblogs.com/xuehaoyue/">

首页</a>

</li>

<li>

 

<a id="blog_nav_newpost" class="menu" href="https://i.cnblogs.com/EditPosts.aspx?opt=1">

新随笔</a>

</li>

<li>

<a id="blog_nav_contact" class="menu" href="https://msg.cnblogs.com/send/%E5%A6%99%E9%9F%B3%E5%A4%A9%E5%A5%B3">

联系</a></li>

<li>

<a id="blog_nav_rss" class="menu" href="javascript:void(0)" data-rss="https://www.cnblogs.com/xuehaoyue/rss/">订阅</a>

<!--<partial name="./Shared/_XmlLink.cshtml" model="Model" /></li>--></li>

<li>

<a id="blog_nav_admin" class="menu" href="https://i.cnblogs.com/">

管理</a>

</li>

</ul>

 

 

        <div class="blogStats">

            

            <span id="stats_post_count">随笔 -

40&nbsp; </span>

<span id="stats_article_count">文章 -

1&nbsp; </span>

<span id="stats-comment_count">评论 -

59</span>

 

            

        </div><!--end: blogStats -->

    </div><!--end: navigator 博客导航栏 -->

</div><!--end: header 头部 -->

 

<div id="main">

    <div id="mainContent">

    <div class="forFlow">

        <div id="post_detail">

<!--done-->

<div id="topics">

<div class="post">

<h1 class="postTitle">

 

<a id="cb_post_title_url" class="postTitle2 vertical-middle" href="https://www.cnblogs.com/xuehaoyue/p/6650533.html">

<span>为博客园添加目录的方法总结</span>

 

 

 

</a>

 

</h1>

<div class="clear"></div>

<div class="postBody">

 

<div id="likecs_post_body" class="blogpost-body cnblogs-markdown"><a name="_labelTop"></a><div id="navCategory" style="color:#152e97;"><p style="font-size:18px;"><b>目录</b></p><ul><li><a href="#_label0">第一种:在正文上方直接添加目录</a><ul><li><a href="#_label0_0">1. 申请开通js权限</a></li><li><a href="#_label0_1">2. 添加js脚本到"页脚Html代码"</a></li><li><a href="#_label0_2">3. 按格式写文章</a></li></ul></li><li><a href="#_label1">第二种:在文章右上角添加目录导航</a><ul><li><a href="#_label1_0">1. 申请开通js权限</a></li><li><a href="#_label1_1">2. 添加css代码到"页面定制CSS代码"</a></li><li><a href="#_label1_2">3. 添加js脚本到"页首Html代码"</a></li><li><a href="#_label1_3">4. 按格式写文章</a></li></ul></li></ul></div><p>&nbsp;</p><hr style="height:1px;border:none;border-top:1px dashed #0066CC;">

<p>参考链接:<br>

<a href="http://www.cnblogs.com/xdp-gacl/p/3718879.html#2937655">http://www.cnblogs.com/xdp-gacl/p/3718879.html#2937655</a><br>

<a href="http://www.cnblogs.com/zzqcn/p/4657124.html">http://www.cnblogs.com/zzqcn/p/4657124.html</a><br>

<a href="http://www.cnblogs.com/jiangz/p/3734968.html">http://www.cnblogs.com/jiangz/p/3734968.html</a></p>

<div style="text-align: right;"><a href="#_labelTop" style="color:#f68a33">回到顶部</a><a name="_label0"></a></div><h2 id="blogTitle0">第一种:在正文上方直接添加目录</h2>

<a name="_label0_0"></a><h3 id="blogTitle1">1. 申请开通js权限</h3>

<p>默认是不支持,需要打开博客园后台,进入"设置"标签页,点击"申请开通js权限",并注明用途<br>

<img src="//upload-images.jianshu.io/upload_images/4334050-29d472bc4b493c49.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="Paste_Image.png" loading="lazy"><br>

如果想加快申请速度,也可以再向官方发个邮件(邮箱是<a href="mailto:contact@cnblogs.com">contact@cnblogs.com</a>),邮件也需要注明用途,快的话1小时就能搞定了</p>

<a name="_label0_1"></a><h3 id="blogTitle2">2. 添加js脚本到"页脚Html代码"</h3>

<p>打开博客园后台,进入"设置"标签页,在最下面的"页脚Html代码"对应的编辑框粘贴下面的js代码,然后点"保存"按钮保存。<br>

(如果没有开通js权限,此处无法添加)<br>

<img src="//upload-images.jianshu.io/upload_images/4334050-6cf216b26ad8be06.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="Paste_Image.png" loading="lazy"></p>

<p><img src="//upload-images.jianshu.io/upload_images/4334050-4d54307e03714fa2.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="Paste_Image.png" loading="lazy"></p>

<pre><code class="hljs xml"><span class="hljs-tag">&lt;<span class="hljs-name">script</span> <span class="hljs-attr">language</span>=<span class="hljs-string">"javascript"</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"text/javascript"</span>&gt;</span><span class="javascript">

<span class="hljs-comment">// 生成目录索引列表</span>

<span class="hljs-comment">// ref: http://www.cnblogs.com/wangqiguo/p/4355032.html</span>

<span class="hljs-comment">// modified by: zzq</span>

<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">GenerateContentList</span>(<span class="hljs-params"></span>)

</span>{

<span class="hljs-keyword">var</span> mainContent = $(<span class="hljs-string">\'#likecs_post_body\'</span>);

<span class="hljs-keyword">var</span> h2_list = $(<span class="hljs-string">\'#likecs_post_body h2\'</span>);<span class="hljs-comment">//如果你的章节标题不是h2,只需要将这里的h2换掉即可</span>

 

<span class="hljs-keyword">if</span>(mainContent.length &lt; <span class="hljs-number">1</span>)

<span class="hljs-keyword">return</span>;

 

<span class="hljs-keyword">if</span>(h2_list.length&gt;<span class="hljs-number">0</span>)

{

<span class="hljs-keyword">var</span> content = <span class="hljs-string">\'&lt;a name="_labelTop"&gt;&lt;/a&gt;\'</span>;

content += <span class="hljs-string">\'&lt;div id="navCategory" style="color:#152e97;"&gt;\'</span>;

content += <span class="hljs-string">\'&lt;p style="font-size:18px;"&gt;&lt;b&gt;目录&lt;/b&gt;&lt;/p&gt;\'</span>;

content += <span class="hljs-string">\'&lt;ul&gt;\'</span>;

<span class="hljs-keyword">for</span>(<span class="hljs-keyword">var</span> i=<span class="hljs-number">0</span>; i&lt;h2_list.length; i++)

{

<span class="hljs-keyword">var</span> go_to_top = <span class="hljs-string">\'&lt;div style="text-align: right;"&gt;&lt;a href="#_labelTop" style="color:#f68a33"&gt;回到顶部&lt;/a&gt;&lt;a name="_label\'</span> + i + <span class="hljs-string">\'"&gt;&lt;/a&gt;&lt;/div&gt;\'</span>;

$(h2_list[i]).before(go_to_top);

 

<span class="hljs-keyword">var</span> h3_list = $(h2_list[i]).nextAll(<span class="hljs-string">"h3"</span>);

<span class="hljs-keyword">var</span> li3_content = <span class="hljs-string">\'\'</span>;

<span class="hljs-keyword">for</span>(<span class="hljs-keyword">var</span> j=<span class="hljs-number">0</span>; j&lt;h3_list.length; j++)

{

<span class="hljs-keyword">var</span> tmp = $(h3_list[j]).prevAll(<span class="hljs-string">\'h2\'</span>).first();

<span class="hljs-keyword">if</span>(!tmp.is(h2_list[i]))

<span class="hljs-keyword">break</span>;

<span class="hljs-keyword">var</span> li3_anchor = <span class="hljs-string">\'&lt;a name="_label\'</span> + i + <span class="hljs-string">\'_\'</span> + j + <span class="hljs-string">\'"&gt;&lt;/a&gt;\'</span>;

$(h3_list[j]).before(li3_anchor);

li3_content += <span class="hljs-string">\'&lt;li&gt;&lt;a href="#_label\'</span> + i + <span class="hljs-string">\'_\'</span> + j + <span class="hljs-string">\'"&gt;\'</span> + $(h3_list[j]).text() + <span class="hljs-string">\'&lt;/a&gt;&lt;/li&gt;\'</span>;

}

 

<span class="hljs-keyword">var</span> li2_content = <span class="hljs-string">\'\'</span>;

<span class="hljs-keyword">if</span>(li3_content.length &gt; <span class="hljs-number">0</span>)

li2_content = <span class="hljs-string">\'&lt;li&gt;&lt;a href="#_label\'</span> + i + <span class="hljs-string">\'"&gt;\'</span> + $(h2_list[i]).text() + <span class="hljs-string">\'&lt;/a&gt;&lt;ul&gt;\'</span> + li3_content + <span class="hljs-string">\'&lt;/ul&gt;&lt;/li&gt;\'</span>;

<span class="hljs-keyword">else</span>

li2_content = <span class="hljs-string">\'&lt;li&gt;&lt;a href="#_label\'</span> + i + <span class="hljs-string">\'"&gt;\'</span> + $(h2_list[i]).text() + <span class="hljs-string">\'&lt;/a&gt;&lt;/li&gt;\'</span>;

content += li2_content;

}

content += <span class="hljs-string">\'&lt;/ul&gt;\'</span>;

content += <span class="hljs-string">\'&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;\'</span>;

content += <span class="hljs-string">\'&lt;hr style="height:1px;border:none;border-top:1px dashed #0066CC;"/&gt;\'</span>;

<span class="hljs-keyword">if</span>($(<span class="hljs-string">\'#likecs_post_body\'</span>).length != <span class="hljs-number">0</span> )

{

$($(<span class="hljs-string">\'#likecs_post_body\'</span>)[<span class="hljs-number">0</span>]).prepend(content);

}

}

}

 

GenerateContentList();

</span><span class="hljs-tag">&lt;/<span class="hljs-name">script</span>&gt;</span>

</code></pre>

<a name="_label0_2"></a><h3 id="blogTitle3">3. 按格式写文章</h3>

<p>在写新博文的时候,注意按照你js脚本里设定的格式来划分章节(这里只设定了h2,h3,对应普通编辑器中的二级标题和三级标题,对应markdown中的##和###)。当然,以前发布的文章如果有h2,h3,也会自动生成目录索引。<br>

<br><br>

效果如下:<br>

<img src="//upload-images.jianshu.io/upload_images/4334050-85f26e605ba11f1b.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="Paste_Image.png" loading="lazy"></p>

<div style="text-align: right;"><a href="#_labelTop" style="color:#f68a33">回到顶部</a><a name="_label1"></a></div><h2 id="blogTitle4">第二种:在文章右上角添加目录导航</h2>

<a name="_label1_0"></a><h3 id="blogTitle5">1. 申请开通js权限</h3>

<p>同上</p>

<a name="_label1_1"></a><h3 id="blogTitle6">2. 添加css代码到"页面定制CSS代码"</h3>

<p><img src="//upload-images.jianshu.io/upload_images/4334050-66323d1d5ca908a2.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="Paste_Image.png" loading="lazy"></p>

<pre><code class="hljs scss"><span class="hljs-comment">/*生成博客目录的CSS*/</span>

<span class="hljs-selector-id">#uprightsideBar</span>{

<span class="hljs-attribute">font-size</span>:<span class="hljs-number">12px</span>;

<span class="hljs-attribute">font-family</span>:Arial, Helvetica, sans-serif;

<span class="hljs-attribute">text-align</span>:left;

<span class="hljs-attribute">position</span>:fixed;<span class="hljs-comment">/*将div的位置固定到距离top:50px,right:0px的位置,这样div就会处在最右边的位置,距离顶部50px*/</span>

<span class="hljs-attribute">top</span>:<span class="hljs-number">50px</span>;

<span class="hljs-attribute">right</span>:<span class="hljs-number">0px</span>;

<span class="hljs-attribute">width</span>: auto;

<span class="hljs-attribute">height</span>: auto;

}

<span class="hljs-selector-id">#sideBarTab</span>{

<span class="hljs-attribute">float</span>:left;

<span class="hljs-attribute">width</span>:<span class="hljs-number">30px</span>;

<span class="hljs-attribute">border</span>:<span class="hljs-number">1px</span> solid <span class="hljs-number">#e5e5e5</span>;

<span class="hljs-attribute">border-right</span>:none;

<span class="hljs-attribute">text-align</span>:center;

<span class="hljs-attribute">background</span>:<span class="hljs-number">#ffffff</span>;

}

 

<span class="hljs-selector-id">#sideBarContents</span>{

<span class="hljs-attribute">float</span>:left;

<span class="hljs-attribute">overflow</span>:auto;

<span class="hljs-attribute">overflow-x</span>:hidden;!important;

<span class="hljs-attribute">width</span>:<span class="hljs-number">200px</span>;

<span class="hljs-attribute">min-height</span>:<span class="hljs-number">108px</span>;

<span class="hljs-attribute">max-height</span>:<span class="hljs-number">460px</span>;

<span class="hljs-attribute">border</span>:<span class="hljs-number">1px</span> solid <span class="hljs-number">#e5e5e5</span>;

<span class="hljs-attribute">border-right</span>:none;

<span class="hljs-attribute">background</span>:<span class="hljs-number">#ffffff</span>;

}

<span class="hljs-selector-id">#sideBarContents</span> <span class="hljs-selector-tag">dl</span>{

<span class="hljs-attribute">margin</span>:<span class="hljs-number">0</span>;

<span class="hljs-attribute">padding</span>:<span class="hljs-number">0</span>;

}

 

<span class="hljs-selector-id">#sideBarContents</span> <span class="hljs-selector-tag">dt</span>{

<span class="hljs-attribute">margin-top</span>:<span class="hljs-number">5px</span>;

<span class="hljs-attribute">margin-left</span>:<span class="hljs-number">5px</span>;

}

 

<span class="hljs-selector-id">#sideBarContents</span> <span class="hljs-selector-tag">dd</span>, <span class="hljs-selector-tag">dt</span> {

<span class="hljs-attribute">cursor</span>: pointer;

}

 

<span class="hljs-selector-id">#sideBarContents</span> <span class="hljs-selector-tag">dd</span>:hover, <span class="hljs-selector-tag">dt</span>:hover {

<span class="hljs-attribute">color</span>:<span class="hljs-number">#A7995A</span>;

}

<span class="hljs-selector-id">#sideBarContents</span> <span class="hljs-selector-tag">dd</span>{

<span class="hljs-attribute">margin-left</span>:<span class="hljs-number">20px</span>;

}

</code></pre>

<a name="_label1_2"></a><h3 id="blogTitle7">3. 添加js脚本到"页首Html代码"</h3>

<p><img src="//upload-images.jianshu.io/upload_images/4334050-118df2570a63de6c.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="Paste_Image.png" loading="lazy"></p>

<pre><code class="hljs xml"><span class="hljs-tag">&lt;<span class="hljs-name">script</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"text/javascript"</span>&gt;</span><span class="javascript">

<span class="hljs-comment">/*

功能:生成博客目录的JS工具

测试:IE8,火狐,google测试通过

孤傲苍狼

2014-5-11

*/</span>

<span class="hljs-keyword">var</span> BlogDirectory = {

<span class="hljs-comment">/*

获取元素位置,距浏览器左边界的距离(left)和距浏览器上边界的距离(top)

*/</span>

getElementPosition:<span class="hljs-function"><span class="hljs-keyword">function</span> (<span class="hljs-params">ele</span>) </span>{

<span class="hljs-keyword">var</span> topPosition = <span class="hljs-number">0</span>;

<span class="hljs-keyword">var</span> leftPosition = <span class="hljs-number">0</span>;

<span class="hljs-keyword">while</span> (ele){

topPosition += ele.offsetTop;

leftPosition += ele.offsetLeft;

ele = ele.offsetParent;

}

<span class="hljs-keyword">return</span> {<span class="hljs-attr">top</span>:topPosition, <span class="hljs-attr">left</span>:leftPosition};

},

 

<span class="hljs-comment">/*

获取滚动条当前位置

*/</span>

getScrollBarPosition:<span class="hljs-function"><span class="hljs-keyword">function</span> (<span class="hljs-params"></span>) </span>{

<span class="hljs-keyword">var</span> scrollBarPosition = <span class="hljs-built_in">document</span>.body.scrollTop || <span class="hljs-built_in">document</span>.documentElement.scrollTop;

<span class="hljs-keyword">return</span> scrollBarPosition;

},

 

<span class="hljs-comment">/*

移动滚动条,finalPos 为目的位置,internal 为移动速度

*/</span>

moveScrollBar:<span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">finalpos, interval</span>) </span>{

 

<span class="hljs-comment">//若不支持此方法,则退出</span>

<span class="hljs-keyword">if</span>(!<span class="hljs-built_in">window</span>.scrollTo) {

<span class="hljs-keyword">return</span> <span class="hljs-literal">false</span>;

}

 

<span class="hljs-comment">//窗体滚动时,禁用鼠标滚轮</span>

<span class="hljs-built_in">window</span>.onmousewheel = <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params"></span>)</span>{

<span class="hljs-keyword">return</span> <span class="hljs-literal">false</span>;

};

 

<span class="hljs-comment">//清除计时</span>

<span class="hljs-keyword">if</span> (<span class="hljs-built_in">document</span>.body.movement) {

clearTimeout(<span class="hljs-built_in">document</span>.body.movement);

}

 

<span class="hljs-keyword">var</span> currentpos =BlogDirectory.getScrollBarPosition();<span class="hljs-comment">//获取滚动条当前位置</span>

 

<span class="hljs-keyword">var</span> dist = <span class="hljs-number">0</span>;

<span class="hljs-keyword">if</span> (currentpos == finalpos) {<span class="hljs-comment">//到达预定位置,则解禁鼠标滚轮,并退出</span>

<span class="hljs-built_in">window</span>.onmousewheel = <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params"></span>)</span>{

<span class="hljs-keyword">return</span> <span class="hljs-literal">true</span>;

}

<span class="hljs-keyword">return</span> <span class="hljs-literal">true</span>;

}

<span class="hljs-keyword">if</span> (currentpos &lt; finalpos) {<span class="hljs-comment">//未到达,则计算下一步所要移动的距离</span>

dist = <span class="hljs-built_in">Math</span>.ceil((finalpos - currentpos)/<span class="hljs-number">10</span>);

currentpos += dist;

}

<span class="hljs-keyword">if</span> (currentpos &gt; finalpos) {

dist = <span class="hljs-built_in">Math</span>.ceil((currentpos - finalpos)/<span class="hljs-number">10</span>);

currentpos -= dist;

}

 

<span class="hljs-keyword">var</span> scrTop = BlogDirectory.getScrollBarPosition();<span class="hljs-comment">//获取滚动条当前位置</span>

<span class="hljs-built_in">window</span>.scrollTo(<span class="hljs-number">0</span>, currentpos);<span class="hljs-comment">//移动窗口</span>

<span class="hljs-keyword">if</span>(BlogDirectory.getScrollBarPosition() == scrTop)<span class="hljs-comment">//若已到底部,则解禁鼠标滚轮,并退出</span>

{

<span class="hljs-built_in">window</span>.onmousewheel = <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params"></span>)</span>{

<span class="hljs-keyword">return</span> <span class="hljs-literal">true</span>;

}

<span class="hljs-keyword">return</span> <span class="hljs-literal">true</span>;

}

 

<span class="hljs-comment">//进行下一步移动</span>

<span class="hljs-keyword">var</span> repeat = <span class="hljs-string">"BlogDirectory.moveScrollBar("</span> + finalpos + <span class="hljs-string">","</span> + interval + <span class="hljs-string">")"</span>;

<span class="hljs-built_in">document</span>.body.movement = setTimeout(repeat, interval);

},

 

<span class="hljs-attr">htmlDecode</span>:<span class="hljs-function"><span class="hljs-keyword">function</span> (<span class="hljs-params">text</span>)</span>{

<span class="hljs-keyword">var</span> temp = <span class="hljs-built_in">document</span>.createElement(<span class="hljs-string">"div"</span>);

temp.innerHTML = text;

<span class="hljs-keyword">var</span> output = temp.innerText || temp.textContent;

temp = <span class="hljs-literal">null</span>;

<span class="hljs-keyword">return</span> output;

},

 

<span class="hljs-comment">/*

创建博客目录,

id表示包含博文正文的 div 容器的 id,

mt 和 st 分别表示主标题和次级标题的标签名称(如 H2、H3,大写或小写都可以!),

interval 表示移动的速度

*/</span>

createBlogDirectory:<span class="hljs-function"><span class="hljs-keyword">function</span> (<span class="hljs-params">id, mt, st, interval</span>)</span>{

<span class="hljs-comment">//获取博文正文div容器</span>

<span class="hljs-keyword">var</span> elem = <span class="hljs-built_in">document</span>.getElementById(id);

<span class="hljs-keyword">if</span>(!elem) <span class="hljs-keyword">return</span> <span class="hljs-literal">false</span>;

<span class="hljs-comment">//获取div中所有元素结点</span>

<span class="hljs-keyword">var</span> nodes = elem.getElementsByTagName(<span class="hljs-string">"*"</span>);

<span class="hljs-comment">//创建博客目录的div容器</span>

<span class="hljs-keyword">var</span> divSideBar = <span class="hljs-built_in">document</span>.createElement(<span class="hljs-string">\'DIV\'</span>);

divSideBar.className = <span class="hljs-string">\'uprightsideBar\'</span>;

divSideBar.setAttribute(<span class="hljs-string">\'id\'</span>, <span class="hljs-string">\'uprightsideBar\'</span>);

<span class="hljs-keyword">var</span> divSideBarTab = <span class="hljs-built_in">document</span>.createElement(<span class="hljs-string">\'DIV\'</span>);

divSideBarTab.setAttribute(<span class="hljs-string">\'id\'</span>, <span class="hljs-string">\'sideBarTab\'</span>);

divSideBar.appendChild(divSideBarTab);

<span class="hljs-keyword">var</span> h2 = <span class="hljs-built_in">document</span>.createElement(<span class="hljs-string">\'H2\'</span>);

divSideBarTab.appendChild(h2);

<span class="hljs-keyword">var</span> txt = <span class="hljs-built_in">document</span>.createTextNode(<span class="hljs-string">\'目录导航\'</span>);

h2.appendChild(txt);

<span class="hljs-keyword">var</span> divSideBarContents = <span class="hljs-built_in">document</span>.createElement(<span class="hljs-string">\'DIV\'</span>);

divSideBarContents.style.display = <span class="hljs-string">\'none\'</span>;

divSideBarContents.setAttribute(<span class="hljs-string">\'id\'</span>, <span class="hljs-string">\'sideBarContents\'</span>);

divSideBar.appendChild(divSideBarContents);

<span class="hljs-comment">//创建自定义列表</span>

<span class="hljs-keyword">var</span> dlist = <span class="hljs-built_in">document</span>.createElement(<span class="hljs-string">"dl"</span>);

divSideBarContents.appendChild(dlist);

<span class="hljs-keyword">var</span> num = <span class="hljs-number">0</span>;<span class="hljs-comment">//统计找到的mt和st</span>

mt = mt.toUpperCase();<span class="hljs-comment">//转化成大写</span>

st = st.toUpperCase();<span class="hljs-comment">//转化成大写</span>

<span class="hljs-comment">//遍历所有元素结点</span>

<span class="hljs-keyword">for</span>(<span class="hljs-keyword">var</span> i=<span class="hljs-number">0</span>; i&lt;nodes.length; i++)

{

<span class="hljs-keyword">if</span>(nodes[i].nodeName == mt|| nodes[i].nodeName == st)

{

<span class="hljs-comment">//获取标题文本</span>

<span class="hljs-keyword">var</span> nodetext = nodes[i].innerHTML.replace(<span class="hljs-regexp">/&lt;\/?[^&gt;]+&gt;/g</span>,<span class="hljs-string">""</span>);<span class="hljs-comment">//innerHTML里面的内容可能有HTML标签,所以用正则表达式去除HTML的标签</span>

nodetext = nodetext.replace(<span class="hljs-regexp">/&nbsp;/ig</span>, <span class="hljs-string">""</span>);<span class="hljs-comment">//替换掉所有的&nbsp;</span>

nodetext = BlogDirectory.htmlDecode(nodetext);

<span class="hljs-comment">//插入锚 </span>

nodes[i].setAttribute(<span class="hljs-string">"id"</span>, <span class="hljs-string">"blogTitle"</span> + num);

<span class="hljs-keyword">var</span> item;

<span class="hljs-keyword">switch</span>(nodes[i].nodeName)

{

<span class="hljs-keyword">case</span> mt: <span class="hljs-comment">//若为主标题 </span>

item = <span class="hljs-built_in">document</span>.createElement(<span class="hljs-string">"dt"</span>);

<span class="hljs-keyword">break</span>;

<span class="hljs-keyword">case</span> st: <span class="hljs-comment">//若为子标题</span>

item = <span class="hljs-built_in">document</span>.createElement(<span class="hljs-string">"dd"</span>);

<span class="hljs-keyword">break</span>;

}

 

<span class="hljs-comment">//创建锚链接</span>

<span class="hljs-keyword">var</span> itemtext = <span class="hljs-built_in">document</span>.createTextNode(nodetext);

item.appendChild(itemtext);

item.setAttribute(<span class="hljs-string">"name"</span>, num);

item.onclick = <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params"></span>)</span>{ <span class="hljs-comment">//添加鼠标点击触发函数</span>

<span class="hljs-keyword">var</span> pos = BlogDirectory.getElementPosition(<span class="hljs-built_in">document</span>.getElementById(<span class="hljs-string">"blogTitle"</span> + <span class="hljs-keyword">this</span>.getAttribute(<span class="hljs-string">"name"</span>)));

<span class="hljs-keyword">if</span>(!BlogDirectory.moveScrollBar(pos.top, interval)) <span class="hljs-keyword">return</span> <span class="hljs-literal">false</span>;

};

 

<span class="hljs-comment">//将自定义表项加入自定义列表中</span>

dlist.appendChild(item);

num++;

}

}

 

<span class="hljs-keyword">if</span>(num == <span class="hljs-number">0</span>) <span class="hljs-keyword">return</span> <span class="hljs-literal">false</span>;

<span class="hljs-comment">/*鼠标进入时的事件处理*/</span>

divSideBarTab.onmouseenter = <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params"></span>)</span>{

divSideBarContents.style.display = <span class="hljs-string">\'block\'</span>;

}

<span class="hljs-comment">/*鼠标离开时的事件处理*/</span>

divSideBar.onmouseleave = <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params"></span>) </span>{

divSideBarContents.style.display = <span class="hljs-string">\'none\'</span>;

}

 

<span class="hljs-built_in">document</span>.body.appendChild(divSideBar);

}

 

};

 

<span class="hljs-built_in">window</span>.onload=<span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params"></span>)</span>{

<span class="hljs-comment">/*页面加载完成之后生成博客目录*/</span>

BlogDirectory.createBlogDirectory(<span class="hljs-string">"likecs_post_body"</span>,<span class="hljs-string">"h2"</span>,<span class="hljs-string">"h3"</span>,<span class="hljs-number">20</span>);

}

</span><span class="hljs-tag">&lt;/<span class="hljs-name">script</span>&gt;</span>

</code></pre>

<a name="_label1_3"></a><h3 id="blogTitle8">4. 按格式写文章</h3>

<p>同上<br>

<br><br>

效果如下:<br>

<img src="//upload-images.jianshu.io/upload_images/4334050-9dac637b2930256f.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="Paste_Image.png" loading="lazy"></p>

 

</div>

<div id="MySignature"></div>

<div class="clear"></div>

<div id="blog_post_info_block"><div id="BlogPostCategory">

分类:

<a href="https://www.cnblogs.com/xuehaoyue/category/972472.html" target="_blank">工具</a></div>

 

 

<div id="blog_post_info">

<div id="green_channel">

<a href="javascript:void(0);" id="green_channel_digg" onclick="DiggIt(6650533,cb_blogId,1);green_channel_success(this,\'谢谢推荐!\');">好文要顶</a>

<a id="green_channel_follow" onclick="follow(\'fdceac23-09e7-e611-845c-ac853d9f53ac\');" href="javascript:void(0);">关注我</a>

<a id="green_channel_favorite" onclick="AddToWz(cb_entryId);return false;" href="javascript:void(0);">收藏该文</a>

<a id="green_channel_weibo" href="javascript:void(0);" title="分享至新浪微博" onclick="ShareToTsina()"><img src="https://common.cnblogs.com/images/icon_weibo_24.png" alt=""></a>

<a id="green_channel_wechat" href="javascript:void(0);" title="分享至微信" onclick="shareOnWechat()"><img src="https://common.cnblogs.com/images/wechat.png" alt=""></a>

</div>

<div id="author_profile">

<div id="author_profile_info" class="author_profile_info">

<a href="https://home.cnblogs.com/u/xuehaoyue/" target="_blank"><img src="https://pic.cnblogs.com/face/1100067/20170314194013.png" class="author_avatar" alt=""></a>

<div id="author_profile_detail" class="author_profile_info">

<a href="https://home.cnblogs.com/u/xuehaoyue/">妙音天女</a><br>

<a href="https://home.cnblogs.com/u/xuehaoyue/followees/">关注 - 2</a><br>

<a href="https://home.cnblogs.com/u/xuehaoyue/followers/">粉丝 - 30</a>

</div>

</div>

<div class="clear"></div>

<div id="author_profile_honor"></div>

<div id="author_profile_follow">

<a href="javascript:void(0);" onclick="follow(\'fdceac23-09e7-e611-845c-ac853d9f53ac\');return false;">+加关注</a>

</div>

</div>

<div id="div_digg">

<div class="diggit" onclick="votePost(6650533,\'Digg\')">

<span class="diggnum" id="digg_count">24</span>

</div>

<div class="buryit" onclick="votePost(6650533,\'Bury\')">

<span class="burynum" id="bury_count">0</span>

</div>

<div class="clear"></div>

<div class="diggword" id="digg_tips">

</div>

</div>

 

<script type="text/javascript">

currentDiggType = 0;

</script></div>

<div class="clear"></div>

<div id="post_next_prev">

 

<a href="https://www.cnblogs.com/xuehaoyue/p/6639029.html" class="p_n_p_prefix">« </a> 上一篇: <a href="https://www.cnblogs.com/xuehaoyue/p/6639029.html" title="发布于 2017-03-29 11:47">分块编码(Transfer-Encoding: chunked)</a>

<br>

<a href="https://www.cnblogs.com/xuehaoyue/p/6652900.html" class="p_n_p_prefix">» </a> 下一篇: <a href="https://www.cnblogs.com/xuehaoyue/p/6652900.html" title="发布于 2017-03-31 18:56">动态规划(一):矩阵取数问题</a>

 

</div>

</div>

</div>

<div class="postDesc">posted @

<span id="post-date">2017-03-31 11:40</span>&nbsp;

<a href="https://www.cnblogs.com/xuehaoyue/">妙音天女</a>&nbsp;

阅读(<span id="post_view_count">6114</span>)&nbsp;

评论(<span id="post_comment_count">14</span>)&nbsp;

<a href="https://i.cnblogs.com/EditPosts.aspx?postid=6650533" rel="nofollow">编辑</a>&nbsp;

<a href="javascript:void(0)" onclick="AddToWz(6650533);return false;">收藏</a></div>

</div>

      

      

</div><!--end: topics 文章、评论容器-->

</div>

<script src="https://common.cnblogs.com/highlight/9.12.0/highlight.min.js"></script>

<script>markdown_highlight();</script>

<script>

var allowComments = true, cb_blogId = 329862, cb_blogApp = \'xuehaoyue\', cb_blogUserGuid = \'fdceac23-09e7-e611-845c-ac853d9f53ac\';

var cb_entryId = 6650533, cb_entryCreatedDate = \'2017-03-31 11:40\', cb_postType = 1;

loadViewCount(cb_entryId);

loadSideColumnAd();

</script><a name="!comments"></a>

<div id="blog-comments-placeholder">

 

<div id="comment_pager_top">

 

</div>

 

<br>

<div class="feedback_area_title">评论列表</div>

<div class="feedbackNoItems">

<div class="feedbackNoItems"></div>

</div>

<div class="feedbackItem">

<div class="feedbackListSubtitle">

<div class="feedbackManage">

&nbsp;&nbsp;

 

<span class="comment_actions">

<a href="javascript:void(0);" onclick="return ReplyComment(3895543, \'k6LWhkwCnVgkKJLlmmdekSBduh4Q7h5tRzGCfaVfjlVq/EzrPQK36Q==\')">

回复

</a>

<a href="javascript:void(0);" onclick="return QuoteComment(3895543, \'k6LWhkwCnVgkKJLlmmdekSBduh4Q7h5tRzGCfaVfjlVq/EzrPQK36Q==\')">

引用

</a>

 

 

</span>

 

 

</div>

 

<a href="#3895543" class="layer">#1楼</a>

<a name="3895543" id="comment_anchor_3895543"></a>

 

<span class="comment_date">2018-01-23 11:09</span>

 

 

<a id="a_comment_author_3895543" href="https://www.cnblogs.com/mukekeheart/" target="_blank">mukekeheart</a>

 

</div>

<div class="feedbackCon">

 

<div id="comment_body_3895543" data-format-type="Ubb" class="blog_comment_body cnblogs-ubb">

请问下如何设置字体大小呢

</div>

<div class="comment_vote">

<span class="comment_error" style="color: red"></span>

<a href="javascript:void(0);" class="comment_digg" onclick="return voteComment(3895543, \'Digg\', this.parentElement, false);">

支持(0)

</a>

<a href="javascript:void(0);" class="comment_burry" onclick="return voteComment(3895543, \'Bury\', this.parentElement, false);">

反对(0)

</a>

</div>

<span id="comment_3895543_avatar" style="display:none">

https://pic.cnblogs.com/face/926487/20180313105754.png

</span>

 

</div>

</div>

<div class="feedbackItem">

<div class="feedbackListSubtitle">

<div class="feedbackManage">

&nbsp;&nbsp;

 

<span class="comment_actions">

<a href="javascript:void(0);" onclick="return ReplyComment(3900552, \'ntXUPlsiMzyfJn0uJlJpe8jcdgT0BqMpK6FW4kWw5dqRl5G1EwPsqg==\')">

回复

</a>

<a href="javascript:void(0);" onclick="return QuoteComment(3900552, \'ntXUPlsiMzyfJn0uJlJpe8jcdgT0BqMpK6FW4kWw5dqRl5G1EwPsqg==\')">

引用

</a>

 

 

</span>

 

 

</div>

 

<a href="#3900552" class="layer">#2楼</a>

<a name="3900552" id="comment_anchor_3900552"></a>

 

<span class="comment_date">2018-01-30 17:47</span>

 

 

<a id="a_comment_author_3900552" href="https://www.cnblogs.com/houhaibushihai/" target="_blank">houhaibushihai</a>

 

</div>

<div class="feedbackCon">

 

<div id="comment_body_3900552" data-format-type="Ubb" class="blog_comment_body cnblogs-ubb">

首先感谢

分类:

技术点:

相关文章: