1.JS代码
想要生成目录,许多都说需要JS修改权限,那个这里就直接进入设置页面,找到下方的联系邮箱直接发去就行了,工作人员回复的还是很快的。
拿到权限之后,下面就是将编(搜)写(寻)的JS代码放在页脚HTML代码的方框内,然后点击保存就可以了。要注意目录的生成是几级标题,这一点可是很重要的。JS代码如下,基本没有变化,拷贝了原作者的写法,可以生成二级目录,分别为h2和h3,这点需要注意。
综合来说,这个目录有以下几点的特点,这些也都可以在本文中看到(二级目录本博文没有使用)。
1).
可以在博文首部生成两级目录
2).
每个一级目录上方有一个回到顶部的链接
JS代码如下。
<script
language="javascript"
type="text/javascript">
//
生成两级目录索引列表
function
GenerateContentList()
{
var
mainContent
=
$('#cnblogs_post_body')
var
h2_list
=
$('#cnblogs_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">'
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">回到顶部</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
}
if($('#cnblogs_post_body').length
!=
0
)
{
$($('#cnblogs_post_body')[0]).prepend(content)
}
}
}
GenerateContentList()
</script>
2.
一级标题CSS格式
我在观察zzq同学的一些博文里面的一级标题有一个浅灰色的背景,觉得添加之后看起来很不错。在这里就借用一下该图片作为一级标题的背景,图片和CSS的说明如下。
#cnblogs_post_body
h2
{
background-repeat:
no-repeat
background-image:
url('http://xxxx')
}
以上就是本文的详细内容,希望对大家的学习有所帮助。
1、直接更改,比如:
xID.style.display = "block" // 更改display属性,会覆盖css中的定义。xID.style.display = "" // 取消js更改display属性,以css样式为准。
这里的xID,是通过id获取的标签。当然,也可能是通过tagName之类的获取的标签。
这种方式,简单直接。但是要修改大量的样式的时候,不适合。所以,我更推荐第二种方式。
2、更改类名
xID.className = "xx yy"如果有多个类,就用空格隔开。前提,在样式中要有已有类的定义。比如这里的xx和yy类,在css中应该是写好的。
这种方式把所有的样式写在了css文件中,适合更改较多的样式以及炫酷的样式。js就只做一件事情:改类。至于这个类会把标签变成什么样子,交给css吧。
通过jquery也可以达到如上的效果:
$("#xID").css({fontSize:"12px",
display:"block"
}) // 直接更改样式
$("#xID").addClass("xx") // 增加删除类
$("#xID").removeClass("xx")