脚注(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. java Random.nextInt()方法
  2. linux samba 空目录,linux Samba搭建
  3. 手工部署Sqlserver CLR程序集
  4. python PyQt5 QLabel()(可以用来显示文字、图片或作为放置一些控件提示信息的容器)
  5. Oracle学习:序列
  6. Linux 文件目录特殊权限设定(SUID,SGID,SBIT)
  7. BATJ面试必会|Jvm 虚拟机篇
  8. c++:怎么将ctime时间转化为一个具体的秒数值_Linux下如何删除长时间不使用的旧文件?...
  9. 获取结构体某成员偏移
  10. 227 Puzzle
  11. str_replace()函数
  12. scratch 控制、侦测、数据和数字逻辑模块  教案
  13. javashop 发布开源放大镜HiZoom插件
  14. 教你如何使用数字组件,制作有灵魂的数据可视化大屏
  15. wxPython色环电阻计算器
  16. 免费国外视频素材网站
  17. python爬取12306
  18. 火狐浏览器配置xpath
  19. [Erlang 0075] Bad value on output port 'tcp_inet'
  20. 基于java后端的 krpano 功能化

热门文章

  1. 主成分分析的基本原理
  2. 1453_TC275 DataSheet阅读笔记14
  3. 游戏数据安全----一个关于数据加密的简单代码实现
  4. 网络游戏数据加密技术
  5. FPGA 之 时钟,时钟域, 以及复位系统的设计
  6. L.4 ESDA/JEDEC JWIP-002-2021: Summary by Section
  7. 哈希碰撞+mysql_HashMap之Hash碰撞冲突解决方案及未来改进
  8. 单片机编程常用位运算
  9. Maven面试题及答案(18题)
  10. 2022电大国家开放大学网上形考任务-程序设计基础(本)非免费(非答案)