惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

美团技术团队
T
The Blog of Author Tim Ferriss
C
Check Point Blog
博客园_首页
J
Java Code Geeks
云风的 BLOG
云风的 BLOG
L
LangChain Blog
小众软件
小众软件
Stack Overflow Blog
Stack Overflow Blog
爱范儿
爱范儿
Vercel News
Vercel News
博客园 - Franky
V
V2EX
IT之家
IT之家
U
Unit 42
N
Netflix TechBlog - Medium
腾讯CDC
Apple Machine Learning Research
Apple Machine Learning Research
Microsoft Azure Blog
Microsoft Azure Blog
罗磊的独立博客
博客园 - 叶小钗
H
Help Net Security
V
Visual Studio Blog
GbyAI
GbyAI

张鑫旭-鑫空间-鑫生活

1分钟速度了解text-align match-parent声明 « 张鑫旭-鑫空间-鑫生活 光标的形状也能设置了,就是CSS caret-shape属性 « 张鑫旭-鑫空间-鑫生活 pretext与文字四面环绕效果的实现 « 张鑫旭-鑫空间-鑫生活 JSON.rawJSON方法的作用是什么? « 张鑫旭-鑫空间-鑫生活 如何使用CSS判断鼠标从哪个方向进入元素? « 张鑫旭-鑫空间-鑫生活 借助mediabunny纯JS实现视频水印、剪裁、合成等功能 « 张鑫旭-鑫空间-鑫生活 务必谨慎使用JS WeakRef弱引用 « 张鑫旭-鑫空间-鑫生活 CSS六边形头像的实现与蜂巢布局 « 张鑫旭-鑫空间-鑫生活 CSS corner-shape与背景底纹技术 « 张鑫旭-鑫空间-鑫生活 浅学WebTransport API:下一代Web双向通信技术 « 张鑫旭-鑫空间-鑫生活 HTML dialog元素新支持了closedBy属性 « 张鑫旭-鑫空间-鑫生活 HTML interestfor属性与悬停popover交互效果 « 张鑫旭-鑫空间-鑫生活 CSS3模拟window7炫酷界面效果展示 « 张鑫旭-鑫空间-鑫生活 图片旋转+剪裁js插件(兼容各浏览器) « 张鑫旭-鑫空间-鑫生活 纯js无图片无外链CSS图片幻灯片播放插件 « 张鑫旭-鑫空间-鑫生活 CSS border三角、圆角图形生成技术简介 « 张鑫旭-鑫空间-鑫生活 CSS “渐进增强”在web制作中常见应用举例 « 张鑫旭-鑫空间-鑫生活 让IE6/IE7/IE8浏览器支持CSS3属性 « 张鑫旭-鑫空间-鑫生活 jQuery – 高亮动态显示页面HTML代码插件 « 张鑫旭-鑫空间-鑫生活 翻译 – 逐渐消失的Flash网站 « 张鑫旭-鑫空间-鑫生活 CSS reset的重新审视 – 避免样式重置 « 张鑫旭-鑫空间-鑫生活 新浪微博插入话题后部分文字选中的js实现 « 张鑫旭-鑫空间-鑫生活 JavaScript实现http地址自动检测并添加URL链接 « 张鑫旭-鑫空间-鑫生活 CSS实现兼容性的渐变背景(gradient)效果 « 张鑫旭-鑫空间-鑫生活 CSS content内容生成技术以及应用 « 张鑫旭-鑫空间-鑫生活 CSS gradient渐变之webkit核心浏览器下的使用 « 张鑫旭-鑫空间-鑫生活 CSS渐变之CSS3 gradient在Firefox3.6下的使用 « 张鑫旭-鑫空间-鑫生活 区分IE8/IE7/IE6及其他浏览器-CSS “\9″hack « 张鑫旭-鑫空间-鑫生活 CSS实现跨浏览器兼容性的盒阴影效果 « 张鑫旭-鑫空间-鑫生活 CSS3&HTML5各浏览器支持情况一览表 « 张鑫旭-鑫空间-鑫生活
文章文档标题自动生成导航jQuery小插件titleNav.js « 张鑫旭...
张鑫旭,zhangxinxu · 2018-04-30 · via 张鑫旭-鑫空间-鑫生活

by zhangxinxu from http://www.zhangxinxu.com/wordpress/?p=7498
本文可全文转载,但需要保留原作者和出处。

技术文档,或者一些官网首页,重展示,基本上都是一个<section>一个<section>的段落组成,每个段落会有一个标题,此时页面往往会很长很长,如果用户阅读时候关心的只是中间某个段落,则交互体验并不友好,此时,就需要有一个页面内的标题导航,用户直接点击导航菜单,就能定位到对应的标题,此时阅读起来就省心多了。

由于这种交互实现并不难,因此,以前我都是直接现写一段JS脚本满足功能。近期,我又遇到需要这样处理的交互场景,琢磨了下,从业这么久,这种交互现写的场景估计一个巴掌都数不过来了吧,以后估计还会遇到这样的交互场景,一不做二不休,有必要写个即插即用的方法。

我就陪小朋友玩耍完毕后花了几个小时迅速弄了下,写了个名为jquery.titleNav.js的jQuery小插件。

一、jQuery小插件titleNav.js效果演示与下载

您可以狠狠地点击这里:自动生成标题导航jQuery小插件demo

demo页面是copy的一段LuLu UI(http://l-ui.com)的“关于”文档,滚动页面,可以看到右上方的导航会自动从跟随滚动变成fixed固定定位,同时高亮(这里是加粗)对应的菜单选项。

固定定位且高亮的导航效果截图

下载(右键->另存为):jquery.titleNav.js

二、jQuery小插件titleNav.js使用

上面提供的demo页面的JS使用如下:

<script>
$('h3').titleNav();
</script>

就一行代码。

然后,需要下面的CSS配合:

.title-nav-ul {
    width: 200px;
    border: 1px solid #ccc;
    background-color: #fff;
    box-shadow: 1px 1px 3px rgba(0,0,0,.25);
    position: absolute;
    top: 200px; right: 10px;
}
.title-nav-li {
    display: block;
    padding: 10px;
    text-decoration: none;
    color: inherit;
}
.title-nav-li.active {
    font-weight: bold;
}
.title-nav-li:hover {
    background-color: #f0f0f0;
}

实现的是右上方定位的垂直导航效果。

如果我们希望实现的是顶部定位的水平导航效果,则修改.title-nav-ul.title-nav-li这两个类名的样式即可,分别表示导航容器和导航列表。

API使用与说明

API如下:

$().titleNav(options);

其中,$()知道jQuery包装器对象,在这里特指标题元素。options为可选参数,具体见下表:

API名称 默认值 释义
nav null Object类型,表示导航元素。默认为null,表示不使用页面上的元素作为导航列表的容器,而是插件自己主动生成。
container $(window) Object类型。表示滚动容器元素,必须是jQuery包装器元素。默认为浏览器窗体滚动。
offsetTop 20 导航变成固定定位时候距离上边缘的距离大小。默认是20px。如果导航是吸附在浏览器顶部的,则值可以设置为0

关于自动生成的导航元素的DOM结构说明

自动生成的导航元素的DOM结构如下:

<div class="title-nav-ul">
  <a href="javascript:" class="title-nav-li active">一、为何叫LuLu?</a>
  <a href="javascript:" class="title-nav-li">二、为什么使用LuLu?</a>
  <a href="javascript:" class="title-nav-li">三、设计理念</a>
  <a href="javascript:" class="title-nav-li">四、滚动到底部我高亮</a>
</div>

高亮效果如下图:

代码高亮截图

可以看到有个类名active,这个就是用来标记当前哪个列表处于选中态的,用来控制导航的选中高亮效果,在本demo中就是单纯文字加粗。

其他说明

三、结束语

插件写得匆忙,尚未细致测试,若使用过程中遇到问题,欢迎反馈,定当及时更新。

最后分享一首歌,田馥甄北京草莓音乐节献唱《南山南》——

你在南方的艳阳里,大雪纷飞
我在北方的寒夜里,四季如春
如果天黑之前来得及,我要忘了你的眼睛
穷极一生,做不完一场梦

祝五一快乐!

本文为原创文章,会经常更新知识点以及修正一些错误,因此转载请保留原出处,方便溯源,避免陈旧错误知识的误导,同时有更好的阅读体验。
本文地址:http://www.zhangxinxu.com/wordpress/?p=7498

(本篇完)