jQuery插件之Tocify动态节点目录菜单生成器附源码下载


Posted in Javascript onJanuary 08, 2016

Tocify是一个能够动态生成文章节点目录的jQuery插件。假如我们有一篇很长的文章,文章有多个节点,那么使用Tocify可以根据节点元素动态生成文章目录,点击目录可以平滑滚动到对应的节点,当然当滚动页面时,目录结构会根据当前监听到的节点进行切换到当前目录状态。

jQuery插件之Tocify动态节点目录菜单生成器附源码下载

效果展示         源码下载

Tocify目前支持Twitter Bootstrap和jQueryUI Themeroller两种主题风格,我们可以根据实际项目任选其中一种风格,另外必要条件jQuery 1.7.2+和jQueryUI Widget Factory 1.8.21+。放心在IE7+即现代浏览器上使用。

引入CSS和Javascript文件

css文件

<link type="text/css" rel="stylesheet" href="jquery.tocify.css" /> 
<link type="text/css" rel="stylesheet" href="bootstrap.css" />

JavaScript文件

<script src="jquery-1.7.2.min.js"></script> 
<script src="jquery-ui-1.9.1.custom.min.js"></script> 
<script src="jquery.tocify.min.js""></script>

HTML结构

创建一个DIV标签,然后给这个标签添加一个ID或者Class,例如:toc

<div id="toc"></div>

这个div#toc它默认是空的内容,它用来动态生成文章目录,那文章目录如何动态关联文章节点的呢?我们还需要把文章节点做一些规划,如:

<div class="wrap"> 
<h1>Tocify</h1> 
<br /> 
<section> 
<h2>节点1</h2> 
<p>内容</p> 
</section> 
<br /> 
<section> 
<h2>节点2</h2> 
<p>内容</p> 
</section> 
... 
</div>

以上的HTML结构代码大家可以修改tocify的CSS文件来满足你项目视觉的需求。

Javascript

使用jQuery选择选中我们的toc元素,然后通过tocify()方法调用Tocify插件。

$(function() { 
$("#toc").tocify(); 
});

如此,运行网页,一个动态的文章目录就生成了。

选项设置

Tocify提供了丰富的选项设置,我们可以根据项目实际需求设置不同的选项参数。以下是主要的几个参数选项介绍:

选项 说明 默认值
context 任意可用的jQuery选择器 "body"
selectors 文章节点,可以关联生成目录 "h1,h2,h3"
showAndHide 是否展示二级目录结构 true
showEffect 目录展示效果:"none", "fadeIn", "show", or "slideDown" "slideDown"
showEffectSpeed 目录展示速度:"slow", "medium", "fast", 或数字(毫秒) "medium"
hideEffect 目录隐藏效果:"none", "fadeOut", "hide", "slideUp" "none"
hideEffectSpeed 目录隐藏速度:"slow", "medium", "fast", 或数字(毫秒) "medium"
smoothScroll 当点击目录节点菜单时,是否平滑滚动到文章对应的节点内容 true
smoothScrollSpeed 平滑滚动速率,可以是数字(毫秒) or String: "slow", "medium", or "fast" "medium"
scrollTo 当页面滚动时,页面顶端与目录之间的间隔 0
showAndHideOnScroll 当滚动页面时,是否显示和隐藏目录子菜单 true
theme 内容展示风格,可以是"bootstrap", "jqueryui", or "none" "bootstrap"
Javascript 相关文章推荐
prototype Element学习笔记(Element篇三)
Oct 26 Javascript
jQuery LigerUI 使用教程表格篇(1)
Jan 18 Javascript
JavaScript onkeydown事件入门实例(键盘某个按键被按下)
Oct 17 Javascript
针对初学者的jQuery入门指南
Aug 15 Javascript
javascript实现圣旨卷轴展开效果(代码分享)
Mar 23 Javascript
vue-router 导航钩子的具体使用方法
Aug 31 Javascript
JS实现计算小于非负数n的素数的数量算法示例
Feb 26 Javascript
利用layer实现表单完美验证的方法
Sep 26 Javascript
Vue3.x源码调试的实现方法
Oct 13 Javascript
JQuery使用属性addClass、removeClass和toggleClass实现增加和删除类操作示例
Nov 18 jQuery
JavaScript TAB栏切换效果的示例
Nov 05 Javascript
vue常用高阶函数及综合实例
Feb 25 Vue.js
javascript匀速运动实现方法分析
Jan 08 #Javascript
js如何改变文章的字体大小
Jan 08 #Javascript
JavaScript缓冲运动实现方法(2则示例)
Jan 08 #Javascript
jQuery抛物线运动实现方法(附完整demo源码下载)
Jan 08 #Javascript
基于javascript实现右下角浮动广告效果
Jan 08 #Javascript
jQuery数据类型小结(14个)
Jan 08 #Javascript
JS运动相关知识点小结(附弹性运动示例)
Jan 08 #Javascript
You might like
PHP批量生成缩略图的代码
2008/07/19 PHP
php Notice: Undefined index 错误提示解决方法
2010/08/29 PHP
Codeigniter操作数据库表的优化写法总结
2014/06/12 PHP
php 删除一维数组中某一个值元素的操作方法
2018/02/01 PHP
Yii框架数据库查询、增加、删除操作示例
2019/10/14 PHP
js获取单元格自定义属性值的代码(IE/Firefox)
2010/04/05 Javascript
有关于eclipse配置spket需要注意的一些地方
2013/04/07 Javascript
js兼容的placeholder属性详解
2013/08/18 Javascript
jquery遍历之parent()和parents()的区别及parentsUntil()方法详解
2013/12/02 Javascript
js和jquery使按钮失效为不可用状态的方法
2014/01/26 Javascript
jquery实现弹出层登录和全屏层注册特效
2015/08/28 Javascript
javascript数据结构之双链表插入排序实例详解
2015/11/25 Javascript
jQuery事件绑定用法详解(附bind和live的区别)
2016/01/19 Javascript
Angularjs material 实现搜索框功能
2016/03/08 Javascript
jQuery获取多种input值的简单实现方法
2016/06/20 Javascript
JS构造函数与原型prototype的区别介绍
2016/07/04 Javascript
Vue.js实战之组件之间的数据传递
2017/04/01 Javascript
使用async-validator编写Form组件的方法
2018/01/10 Javascript
小程序实现五星点评效果
2018/11/03 Javascript
原生js实现的金山打字小游戏(实例代码详解)
2020/03/16 Javascript
[47:03]Ti4第二日主赛事败者组 LGD vs iG 2
2014/07/21 DOTA
为Python的web框架编写MVC配置来使其运行的教程
2015/04/30 Python
python调用xlsxwriter创建xlsx的方法
2018/05/03 Python
Python实现删除排序数组中重复项的两种方法示例
2019/01/31 Python
Python with关键字,上下文管理器,@contextmanager文件操作示例
2019/10/17 Python
python argparser的具体使用
2019/11/10 Python
python中return不返回值的问题解析
2020/07/22 Python
python opencv图像处理(素描、怀旧、光照、流年、滤镜 原理及实现)
2020/12/10 Python
HTML5 Canvas像素处理使用接口介绍
2012/12/02 HTML / CSS
video实现有声音自动播放的实现方法
2020/05/20 HTML / CSS
Android面试宝典
2013/08/06 面试题
什么是方法的重载
2013/06/24 面试题
工程部经理岗位职责
2013/12/08 职场文书
村官工作鉴定评语
2014/01/27 职场文书
2014年学前班工作总结
2014/12/08 职场文书
解读MySQL的客户端和服务端协议
2021/05/10 MySQL