脚注(Footnote)是向用户提供更多信息的一个最佳途径,也是主体信息的一个有效补充,常见于各种印刷书籍中。不过,既然脚注有这些好处,我们当然要在网页中也加以利用,本文向您介绍了用 Javascript 和 CSS 实现脚注效果的方法。

  1. <script type= "text/javascript">
  2. // 说明:用 Javascript 和 CSS 实现脚注(Footnote)效果
  3. // 作者:CodeBit.cn ( http://www.CodeBit.cn )
  4. var footNotes = function ( ) { };
  5. footNotes. prototype = {
  6. footNoteClassName : "footnote",    // 脚注的 className
  7. footNoteTagName : "span",    // 脚注的标签名
  8. footNoteBackLink : " [back]",    // 返回链接
  9. format : function (contentID, footnoteID )
  10. {
  11. if (!document. getElementById ) return false;
  12. var content = document. getElementById (contentID );
  13. var footnote = document. getElementById (footnoteID );
  14. var spans = content. getElementsByTagName ( this. footNoteTagName );
  15. var noteArr = [ ];
  16. var note = 0;
  17. var elContent;
  18. var len = spans. length;
  19. for (i= 0; i<len; i++ )
  20. {
  21. note ++;
  22. if (spans [i ]. className == this. footNoteClassName )
  23. {
  24. // 获取脚注内容
  25. elContent = spans [i ]. innerHTML;
  26. noteArr. push (elContent );
  27. // 创建一个指向脚注的链接
  28. var newEle = document. createElement ( "a" );
  29. newEle. href = '#ftn_' + footnoteID + '_' + note;
  30. newEle. title = "show footnote";
  31. newEle. id = 'ftnlink_'+footnoteID+ '_' + note;
  32. newEle. innerHTML = note;
  33. // 清空原有内容
  34. while (spans [i ]. childNodes. length )
  35. {
  36. spans [i ]. removeChild ( spans [i ]. firstChild );
  37. }
  38. spans [i ]. appendChild ( newEle );
  39. }
  40. }
  41. // 创建注释列表
  42. var ul = this.__buildNoteList (noteArr, footnoteID );
  43. footnote. appendChild (ul );
  44. },
  45. __buildNoteList : function (notes, noteID ) 
  46. {
  47. if (!notes || notes. length < 1 ) return;
  48. var ul = document. createElement ( 'ul' );
  49. ul. className = this. footNoteClassName;
  50. var li;
  51. var len = notes. length + 1;
  52. for (i= 1; i<len; i++ )
  53. {
  54. li = document. createElement ( 'li' );
  55. li. id = "ftn_"+noteID+ "_"+i;
  56. li. innerHTML = notes [i -1 ];
  57. // 创建【返回】链接
  58. var link = document. createElement ( "a" );
  59. link. href = "#ftnlink_" + noteID + "_" + i;
  60. link. innerHTML = this. footNoteBackLink;
  61. li. appendChild ( link );
  62. ul. appendChild ( li );
  63. }
  64. return ul;
  65. }
  66. };
  67. </script>

要实现脚注,我们需要下列元素:

  1. <div id="article1">
  2. CSS <span class="footnote">CSS 是 Cascading Style Sheet 的缩写。译作「层叠样式表单」。是用于(增强)控制网页样式并允许将样式信息与网页内容分离的一种标记性语言。 </span>
  3. </div>
  4. <div id="artnotes1" class="footnoteHolder"> </div>

其中:
article1 是你需要脚注的文章主体
<span class="footnote"> .. </span> 是注释内容,标签 span 和 class 均可配置。
artnotes1 是显示脚注的地方

按照默认的设置调用方式:
Javascript:

  1. <script type="text/javascript">
  2. var footnote = new footNotes();
  3. footnote.format('article1','artnotes1');
  4. </script>

如果你想自定义一些内容,可以用下面的方式:
Javascript:

  1. <script type="text/javascript">
  2. var footnote = new footNotes();
  3. footnote.footNoteClassName = "footnote2";
  4. footnote.footNoteTagName = "em";
  5. footnote.footNoteBackLink = " [back &laquo;]";
  6. footnote.format('article1','artnotes1');
  7. </script>

用 Javascript 和 CSS 实现脚注(Footnote)效果相关推荐

  1. html5 数字滚动选择器,Odometer使用JavaScript和CSS制作数字滑动效果

    Odometer是一个使用JavaScript和CSS技术,制作出数字上下滑动的动画效果插件,有点类似与我们的天然气的读数的动画效果,这个插件是轻量级的,压缩版本只有3kg,使用CSS3动画技术,所以 ...

  2. css a hover禁止,我可以通过JavaScript禁用CSS:hover效果吗?

    我试图阻止浏览器:hover通过JavaScript 使用CSS 的效果. 我在CSS中设置了a和a:hover样式,因为如果JS不可用,我希望获得悬浮效果.但是,如果有可用的JS ,我想用更平滑的效 ...

  3. WebPart(SharePoint)中如何使用自定义的Javascript和css样式

    由于SharePoint WebPart 不像asp.net,可以拖拽控件,而且没有前台代码.你只能发布倒sharepoint上进行浏览.由于没有前台的HTML,只有后台的cs文件.所以不能通过通常的 ...

  4. 手机开发必备技巧:javascript及CSS功能代码分享

    1. viewport: 也就是可视区域.对于桌面浏览器,我们都很清楚viewport是什么,就是出去了所有工具栏.状态栏.滚动条等等之后用于看网页的区域, 这是真正有效的区域.由于移动设备屏幕宽度不 ...

  5. 不可思议的纯 CSS 实现鼠标跟随效果

    不可思议的纯 CSS 实现鼠标跟随效果 原文:不可思议的纯 CSS 实现鼠标跟随效果 直接进入正题,鼠标跟随,顾名思义,就是元素会跟随着鼠标的移动而作出相应的运动.大概类似于这样: 通常而言,CSS ...

  6. 网站前端性能优化之javascript和css

    之前看过Yahoo团队写的一篇关于网站性能优化的文章,文章是2010年左右写的,虽然有点老,但是很多方面还是很有借鉴意义的.关于css的性能优化,他提到了如下几点: CSS性能优化 1.把样式表置于顶 ...

  7. javascript实现汉诺塔动画效果

    javascript实现汉诺塔动画效果 当初以为不用html5也很简单,踩了javascript单线程的大坑后终于做出来了,没事可以研究下,对理解javascript的执行过程还是很有帮助的,代码很烂 ...

  8. css 实现标签切换,CSS_纯CSS实现Tab切换标签效果代码,本文实例讲述了纯CSS实现Tab切 - phpStudy...

    纯CSS实现Tab切换标签效果代码 本文实例讲述了纯CSS实现Tab切换标签效果代码.分享给大家供大家参考.具体如下: 这是一款纯CSS实现的Tab简洁版,很不错的效果,希望大家喜欢. 运行效果截图如 ...

  9. 原生Javascript 操作 css类名 - 踩坑篇

    文章目录 原生Javascript 操作 css类名 效果图示下: 案例 · 代码如下: 重要代码提示: 其他无关参考: 官方参考: 原生Javascript 操作 css类名 不建议用 .class ...

最新文章

  1. 为什么我的理论和实践之间的差距相对较大
  2. XRPC接口双向调用
  3. 中继器、集线器、网桥、网关产品介绍
  4. 数据科学项目_完整的数据科学组合项目
  5. 高颜值的故宫介绍html源码
  6. 如何在Kaggle 首战中进入前 10%
  7. 虚拟化部署之Windows 7中远程管理Hyper-V
  8. wpf关闭窗口弹出是否确认关闭的提示
  9. centOS7.6安装MySQL8
  10. 数据结构期末复习(四)
  11. 5-32 说反话-加强版
  12. actionSupport类
  13. 倍福plc控制器修改地址
  14. kiss原则包括什么_KISS原则
  15. unity 摄像头跟着鼠标移动_lwj_unity_模拟第一人称摄像机前后左右移动、摄像机随鼠标移动旋转、鼠标点击添加物体...
  16. 《机器人操作系统ROS原理与应用》——2.3 大数据制度和流程规范
  17. 行业如此内卷,品牌如何实现可持续招商增长?
  18. Google 谷歌创业训练营2021展示日回顾
  19. Mysql 错误 1273 Unknown collation
  20. guid linux 识别的分区表_GUID分区表(GPT)修复实战

热门文章

  1. 学习总结4.4 Linux文件/目录所属组修改
  2. missing separator. Stop
  3. MPEG2-TS介绍
  4. 已解决-word粘贴时快捷键实现只保留文本
  5. QCustomPlot的使用教程(二)
  6. golang环境安装
  7. OpenGL的gluLookAt和gluPerspective详解
  8. 漏洞复现篇——利用XSS漏洞实现多种网络钓鱼方法
  9. [android]不解锁刷机
  10. 机器学习实践—基于Scikit-Learn、Keras和TensorFlow2第二版—第4章 训练模型