博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用JavaScript代码为博客园个人博客页面自动添置目录
阅读量:4454 次
发布时间:2019-06-07

本文共 2630 字,大约阅读时间需要 8 分钟。

  当我们在博客中写的东西比较多,或者文章层次比较明显,有很多层次结构,这时如果没有目录导航,将特别难以阅读。博客园有着非常个性化的个人定制功能,可以通过添加js代码实现这个功能,由于对jquery不熟,因此采用原生js来做的。考虑到一般使用二级目录就够了,因此代码只实现到二级目录。也可以很方便的更改代码,实现更多级别。

  另外,当页面滚动到后面时,再返回目录区域也很累,因此在右下加添加了一个返回目录的按钮,随着页面往下滚动,按钮出现并固定。

  以下贴上代码:

//函数实现在父节点的最前面插入新的节点    function prependChild(parent,newChild){        if(parent.firstChild){            parent.insertBefore(newChild,parent.firstChild);        } else {            parent.appendChild(newChild);        }                return parent;}        //var home = document.getElementById("home");                //var documents = document.getElementsByTagName("h1");        var con =document.getElementById("cnblogs_post_body");        var headTags = con.getElementsByTagName("h1");        var L = headTags.length;        var titleContent = document.createElement("div");//标题存放区                titleContent.setAttribute("style","border:1px solid #999;");        titleContent.setAttribute("id","titleContent");        var titleTag = document.createElement("div");//显示目录字样        titleTag.innerHTML="
目录
" titleContent.appendChild(titleTag); var titleOl = document.createElement("ol");//标题存放区 var tagName = "H1_"; for(var i=0;i
0){ headNode.appendChild(titleOl_2); } ///// titleOl.appendChild(headNode); } if(L<=0){ titleContent.setAttribute("style","display:none;"); } titleContent.appendChild(titleOl); prependChild(con,titleContent); ///下面实现返回目录按钮 var goTopTag = document.createElement("a"); goTopTag.setAttribute("style","margin-top:20px;position:absolute;"); goTopTag.setAttribute("href","#titleContent"); goTopTag.innerHTML="返回目录"; var sideBar = document.getElementById("sideBar"); sideBar.appendChild(goTopTag); window.onscroll = function(){ if(getScrollTop()>=1400){ goTopTag.setAttribute("style","margin-top:"+(getScrollTop()-1400+20)+"px;position:absolute;"); } //goTopTag.innerHTML=getScrollTop(); } function getScrollTop() { var scrollTop=0; if(document.documentElement&&document.documentElement.scrollTop) { scrollTop=document.documentElement.scrollTop; } else if(document.body) { scrollTop=document.body.scrollTop; } return scrollTop; }

实现效果可以。

 

转载于:https://www.cnblogs.com/wuchaodzxx/p/5524703.html

你可能感兴趣的文章
透明度百分比与十六进制转换
查看>>
HBase表预分区
查看>>
arcgis desktop 10.1 license manager无法启动问题解决
查看>>
django select_related() 联表查询
查看>>
mysql 常用,使用经验
查看>>
NSBundle,UIImage,UIButton的使用
查看>>
vue-cli3 中console.log报错
查看>>
GridView 中Item项居中显示
查看>>
UML类图五种关系与代码的对应关系
查看>>
如何理解作用域
查看>>
从无到满意offer,你需要知道的那些事
查看>>
P1516 青蛙的约会 洛谷
查看>>
SDOI2011 染色
查看>>
HTTP协议详解
查看>>
JQuery EasyUI combobox动态添加option
查看>>
面向连接的TCP概述
查看>>
前端快捷方式 [记录]
查看>>
亲测可用,解决端口被占用的指令!!
查看>>
MySQL--视图、触发器、事务、存储过程、内置函数、流程控制、索引
查看>>
Django--登录功能
查看>>