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 相关文章推荐
ExtJS下 Ext.Direct加载和提交过程排错小结
Apr 02 Javascript
JavaScript中九种常用排序算法
Sep 02 Javascript
js实现获取焦点后光标在字符串后
Sep 17 Javascript
AngualrJS中每次$http请求时的一个遮罩层Directive
Jan 26 Javascript
全面解析Bootstrap中scrollspy(滚动监听)的使用方法
Jun 06 Javascript
js实现分页功能
May 24 Javascript
jquery实现图片放大点击切换
Jun 06 jQuery
微信小程序开发animation心跳动画效果
Aug 16 Javascript
深入浅析ES6 Class 中的 super 关键字
Oct 20 Javascript
如何将你的AngularJS1.x应用迁移至React的方法
Feb 01 Javascript
Vue2.0实现组件数据的双向绑定问题
Mar 06 Javascript
react 移动端实现列表左滑删除的示例代码
Jul 04 Javascript
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生成随机数的方法实例分析
2015/01/22 PHP
实现PHP+Mysql无限分类的方法汇总
2015/03/02 PHP
ecshop 2.72如何修改后台访问地址
2015/03/03 PHP
php数据库的增删改查 php与javascript之间的交互
2017/08/31 PHP
Laravel5.7 数据库操作迁移的实现方法
2019/04/12 PHP
php如何获取Http请求
2020/04/30 PHP
JQuery为textarea添加maxlength属性并且兼容IE
2013/04/25 Javascript
jquery提示效果实例分析
2014/11/25 Javascript
JS实现可点击展开与关闭的左侧广告代码
2015/09/02 Javascript
微信小程序  自定义创建详细介绍
2016/10/27 Javascript
Vue.js学习之计算属性
2017/01/22 Javascript
js模态对话框使用方法详解
2017/02/16 Javascript
vue.js事件处理器是什么
2017/03/20 Javascript
基于vuejs实现一个todolist项目
2017/04/11 Javascript
详解vue渲染从后台获取的json数据
2017/07/06 Javascript
JS实现的邮箱提示补全效果示例
2018/01/30 Javascript
axios的拦截请求与响应方法
2018/08/11 Javascript
Bootstrap的aria-label和aria-labelledby属性实例详解
2018/11/02 Javascript
vue 使用鼠标滚动加载数据的例子
2019/10/31 Javascript
Vue.js实现立体计算器
2020/02/22 Javascript
对python3.4 字符串转16进制的实例详解
2019/06/12 Python
python交互模式下输入换行/输入多行命令的方法
2019/07/02 Python
django2.2 和 PyMySQL版本兼容问题
2020/02/17 Python
python数据库操作mysql:pymysql、sqlalchemy常见用法详解
2020/03/30 Python
CSS3感应鼠标的背景闪烁和图片缩放动画效果
2014/05/14 HTML / CSS
Charles & Colvard官网:美国莫桑石品牌
2019/06/05 全球购物
博柏利美国官方网站:Burberry美国
2020/11/19 全球购物
求网格中的黑点分布
2013/11/06 面试题
北京-环亚运商测试题.net程序员初步测试题
2013/05/28 面试题
业务经理的岗位职责
2013/11/16 职场文书
高三政治教学反思
2014/02/06 职场文书
综合实践活动总结
2014/05/05 职场文书
党员干部群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
护士医德考评自我评价
2015/03/03 职场文书
详解Java ES多节点任务的高效分发与收集实现
2021/06/30 Java/Android
python Tkinter模块使用方法详解
2022/04/07 Python