当前位置: 首页 > 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# 反射
  • 实现windows 窗体的自己画,网上摘抄的,学习了
  • [笔记] php常见简单功能及函数
  • 【JavaScript】通过闭包创建具有私有属性的实例对象
  • 8年软件测试工程师感悟——写给还在迷茫中的朋友
  • Java Agent 学习笔记
  • JAVA 学习IO流
  • Javascript基础之Array数组API
  • js操作时间(持续更新)
  • js中的正则表达式入门
  • Median of Two Sorted Arrays
  • python_bomb----数据类型总结
  • 彻底搞懂浏览器Event-loop
  • 世界上最简单的无等待算法(getAndIncrement)
  • 项目实战-Api的解决方案
  • 携程小程序初体验
  • ​ubuntu下安装kvm虚拟机
  • (6)添加vue-cookie
  • (NSDate) 时间 (time )比较
  • (ZT)一个美国文科博士的YardLife
  • (附源码)springboot猪场管理系统 毕业设计 160901
  • (附源码)计算机毕业设计ssm本地美食推荐平台
  • (含react-draggable库以及相关BUG如何解决)固定在左上方某盒子内(如按钮)添加可拖动功能,使用react hook语法实现
  • (十七)devops持续集成开发——使用jenkins流水线pipeline方式发布一个微服务项目
  • (四)Tiki-taka算法(TTA)求解无人机三维路径规划研究(MATLAB)
  • (已解决)报错:Could not load the Qt platform plugin “xcb“
  • (译)计算距离、方位和更多经纬度之间的点
  • ******之网络***——物理***
  • .NET Core引入性能分析引导优化
  • .NET DataGridView数据绑定说明
  • .net用HTML开发怎么调试,如何使用ASP.NET MVC在调试中查看控制器生成的html?
  • @Autowired @Resource @Qualifier的区别
  • @RequestMapping用法详解
  • @selector(..)警告提示
  • @SuppressLint(NewApi)和@TargetApi()的区别
  • @Transactional 详解
  • [23] 4K4D: Real-Time 4D View Synthesis at 4K Resolution
  • [C#]手把手教你打造Socket的TCP通讯连接(一)
  • [C++] cout、wcout无法正常输出中文字符问题的深入调查(1):各种编译器测试
  • [CakePHP] 在Controller中使用Helper
  • [CC2642r1] ble5 stacks 蓝牙协议栈 介绍和理解