当前位置: 首页 > news >正文

使用iElevator.js模拟segmentfault的文章标题导航

iElevator.js是小弟业余时间写的一个jQuery小插件,纯属自娱自乐o(^▽^)o!感兴趣的同学可以体验一下,有问题或建议可以直接提出,大家可以共同讨论学习!对于iElevator.js我的上篇文章已做介绍。


iElevator.js是一个jquery小插件,使用简单,兼容IE6,支持UMD和3种配置方式,比锚点更灵活。并支持sticky定位

1. 通过markdown随便编写一篇文章,并将其导出成html文件

#文章标题
##标题1
1
1
1
##标题2
2
2
2
##标题3
.
.
.

2. 创建文章导航

HTML:

<div class="sidebar" id="demo">
    <h3>文章目录</h3>
    <div class="nav">
        <div class="highlight">
            
        </div>
        <ul class="list">
            
        </ul>
    </div>
</div>

Javascript:

// 获取Markdown中的标题
    var $demo = $('#demo'),
        $titles = $('h2'),
        $nav = $demo.find('.list'),
        STR = '';
    // 填充标题
    $titles.each(function(){
        STR += '<li><a>'+ $(this).text() +'</a></li>';
    });
    $nav.html(STR);

对文章标题的获取,可以通过指定特定标识符来获取,如果有副标题可以通过递归来遍历。

3. 调用ielevator

    // 获取Markdown中的标题
    var $demo = $('#demo'),
        $titles = $('h2'),
        $nav = $demo.find('.list'),
        $highlight = $demo.find('.highlight'),
        STR = '';
    // 填充标题
    $titles.each(function(){
        STR += '<li><a>'+ $(this).text() +'</a></li>';
    });
    $nav.html(STR);
    // 调用ielevator
    $demo.ielevator({
        floors: $titles,
        btns: $('#demo li'),
        sticky: 10,
        selected: $highlight
    });

配置项中sticky: 10使用sticky定位,与窗口的top的距离为10。

4. 实现效果:http://zhansingsong.github.io/segmentfault

相关文章:

  • Xfce设置代理Proxy
  • c++打印环境变量
  • 小型考试系统
  • Java IO的RandomAccessFile的使用(转)
  • 执行Asp.net应用程序在Linux上的3种托管方式
  • CSS学习笔记——定位position属性的学习
  • 【转】搭建高可用mongodb集群(一)——配置mongodb
  • 从实体和关系角度看 PowerDesigner 设计数据库模型
  • 基础知识__WebService
  • Lepus经历收获杂谈(二)——QT
  • Python Function Note
  • 腾讯下一个重点:硬件;硬件自身的未来也正进入多元化发展
  • REST架构的思考
  • python的统一编码规范
  • c# 反射
  • Apache Zeppelin在Apache Trafodion上的可视化
  • Brief introduction of how to 'Call, Apply and Bind'
  • create-react-app项目添加less配置
  •  D - 粉碎叛乱F - 其他起义
  • docker python 配置
  • Electron入门介绍
  • extjs4学习之配置
  • JS变量作用域
  • JS专题之继承
  • LeetCode29.两数相除 JavaScript
  • Next.js之基础概念(二)
  • Python连接Oracle
  • React Transition Group -- Transition 组件
  • spring boot 整合mybatis 无法输出sql的问题
  • 搭建gitbook 和 访问权限认证
  • 电商搜索引擎的架构设计和性能优化
  • 构造函数(constructor)与原型链(prototype)关系
  • 聊聊flink的TableFactory
  • 目录与文件属性:编写ls
  • 日剧·日综资源集合(建议收藏)
  • 如何设计一个比特币钱包服务
  • 使用前端开发工具包WijmoJS - 创建自定义DropDownTree控件(包含源代码)
  • 延迟脚本的方式
  • 一起来学SpringBoot | 第十篇:使用Spring Cache集成Redis
  • AI算硅基生命吗,为什么?
  • ​Kaggle X光肺炎检测比赛第二名方案解析 | CVPR 2020 Workshop
  • ​学习一下,什么是预包装食品?​
  • (1综述)从零开始的嵌入式图像图像处理(PI+QT+OpenCV)实战演练
  • (2015)JS ES6 必知的十个 特性
  • (32位汇编 五)mov/add/sub/and/or/xor/not
  • (k8s中)docker netty OOM问题记录
  • (附源码)ssm码农论坛 毕业设计 231126
  • (四)JPA - JQPL 实现增删改查
  • .NET Core 版本不支持的问题
  • .NET Core 网络数据采集 -- 使用AngleSharp做html解析
  • .NET MVC 验证码
  • .Net OpenCVSharp生成灰度图和二值图
  • .Net(C#)自定义WinForm控件之小结篇
  • .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。
  • .NET/C# 在 64 位进程中读取 32 位进程重定向后的注册表