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 相关文章推荐
JavaScript DOM学习第四章 getElementByTagNames
Feb 19 Javascript
js Function类型
Dec 04 Javascript
分享一个常用的javascript静态类
Dec 31 Javascript
jQuery实现的多滑动门,多选项卡效果代码
Mar 28 Javascript
jQuery实现内容定时切换效果完整实例
Apr 06 Javascript
浅析vue component 组件使用
Mar 06 Javascript
Vue.js实战之组件的进阶
Apr 04 Javascript
Jquery中attr与prop的区别详解
May 27 jQuery
详解angularjs实现echart图表效果最简洁教程
Nov 29 Javascript
express express-session的使用小结
Dec 12 Javascript
Vue路由管理器Vue-router的使用方法详解
Feb 05 Javascript
react实现复选框全选和反选组件效果
Aug 25 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
jquery.Jwin.js 基于jquery的弹出层插件代码
2012/05/23 Javascript
基于jQuery的图片不完全按比例自动缩小
2014/07/11 Javascript
JS+CSS实现带关闭按钮DIV弹出窗口的方法
2015/02/27 Javascript
JQuery复制DOM节点的方法
2015/06/11 Javascript
JS基于MSClass和setInterval实现ajax定时采集信息并滚动显示的方法
2016/04/18 Javascript
jQuery中on绑定事件后引发的事件冒泡问题如何解决
2016/05/25 Javascript
全面解析JavaScript里的循环方法之forEach,for-in,for-of
2020/04/20 Javascript
Angular 4依赖注入学习教程之InjectToken的使用(八)
2017/06/04 Javascript
JavaScript定义函数的三种实现方法
2017/09/23 Javascript
sublime text配置node.js调试(图文教程)
2017/11/23 Javascript
Node.js Express安装与使用教程
2018/05/11 Javascript
vue 实现把路由单独分离出来
2020/08/13 Javascript
Echarts在Taro微信小程序开发中的踩坑记录
2020/11/09 Javascript
Scrapy-redis爬虫分布式爬取的分析和实现
2017/02/07 Python
Python打印“菱形”星号代码方法
2018/02/05 Python
Python 字符串换行的多种方式
2018/09/06 Python
用Python将结果保存为xlsx的方法
2019/01/28 Python
Django 反向生成url实例详解
2019/07/30 Python
python3.6.5基于kerberos认证的hive和hdfs连接调用方式
2020/06/06 Python
python实现猜数游戏(保存游戏记录)
2020/06/22 Python
Python常用断言函数实例汇总
2020/11/30 Python
去除python中的字符串空格的简单方法
2020/12/22 Python
使用CSS3代码绘制可爱的Hello Kitty猫
2016/08/03 HTML / CSS
HTML5 Canvas阴影使用方法实例演示
2013/08/02 HTML / CSS
正宗的日本零食和糖果订阅盒:Bokksu
2019/11/21 全球购物
战友聚会邀请函
2014/01/18 职场文书
党员对照检查材料整改措施思想汇报
2014/09/26 职场文书
房屋产权证明书
2014/10/15 职场文书
投资意向协议书
2015/01/29 职场文书
党员承诺书范文2015
2015/04/27 职场文书
给老婆的检讨书(搞笑版)
2015/05/06 职场文书
论文答辩开场白大全
2015/05/27 职场文书
同意落户证明
2015/06/19 职场文书
小学运动会加油稿
2015/07/22 职场文书
Java由浅入深通关抽象类与接口(上篇)
2022/04/26 Java/Android
MySQL实现字段分割一行转多行的示例代码
2022/07/07 MySQL