快速业务通道

Js和CSS实现脚注(Footnote)效果

作者 佚名技术 来源 CSS编程 浏览 发布时间 2012-05-27
       脚注(Footnote)是向用户提供更多信息的一个最佳途径,也是主体信息的一个有效补充,常见于各种印刷书籍中。不过,既然脚注有这些好处,我们当然要在网页中也加以利用,本文向您介绍了用 Javascript 和 CSS 实现脚注效果的方法。
Javascript:
  1.  
  2. <script type="text/javascript">
  3.  
  4. // 说明:用 Javascript 和 CSS 实现脚注(Footnote)效果
  5. // 作者:CodeBit.cn ( http://www.CodeBit.cn )
  6.  
  7. var footNotes = function(){};
  8.  
  9. footNotes.prototype = {
  10.  
  11. footNoteClassName : "footnote", // 脚注的 className
  12. footNoteTagName : "span", // 脚注的标签名
  13. footNoteBackLink : " [back]", // 返回链接
  14.  
  15. format : function(contentID, footnoteID)
  16. {
  17. if (!document.getElementById) return false;
  18.  
  19. var content = document.getElementById(contentID);
  20. var footnote = document.getElementById(footnoteID);
  21.  
  22. var spans = content.getElementsByTagName(this.footNoteTagName);
  23.  
  24. var noteArr = [];
  25. var note = 0;
  26. var elContent;
  27.  
  28. var len = spans.length;
  29. for (i=0; i<len; i++)
  30. {
  31. note ++;
  32.  
  33. if (spans[i].className == this.footNoteClassName)
  34. {
  35. // 获取脚注内容
  36. elContent = spans[i].innerHTML;
  37.  
  38. noteArr.push(elContent);
  39.  
  40. // 创建一个指向脚注的链接
  41. var newEle = document.createElement( "a" );
  42. newEle.href = ''#ftn_'' + footnoteID + ''_'' + note;
  43. newEle.title = "show footnote";
  44. newEle.id = ''ftnlink_''+footnoteID+''_'' + note;
  45. newEle.innerHTML = note;
  46. // 清空原有内容
  47. while (spans[i].childNodes.length)
  48. {
  49. spans[i].removeChild( spans[i].firstChild );
  50. }
  51. spans[i].appendChild( newEle );
  52. }
  53. }
  54.  
  55. // 创建注释列表
  56. var ul = this.__buildNoteList(noteArr, footnoteID);
  57.  
  58. footnote.appendChild(ul);
  59.  
  60. },
  61.  
  62. __buildNoteList : function(notes, noteID)
  63. {
  64. if(!notes || notes.length < 1) return;
  65. var ul = document.createElement(''ul'');
  66.  
  67. ul.className = this.footNoteClassName;
  68.  
  69. var li;
  70.  
  71. var len = notes.length + 1;
  72. for(i=1; i<len; i++)
  73. {
  74. li = document.createElement(''li'');
  75. li.id = "ftn_"+noteID+"_"+i;
  76.  
  77. li.innerHTML = notes[i-1];
  78.  
  79. // 创建【返回】链接
  80. var link = document.createElement("a");
  81. link.href = "#ftnlink_" + noteID + "_" + i;
  82.  
  83. link.innerHTML = this.footNoteBackLink;
  84.  
  85. li.appendChild( link );
  86.  
  87. ul.appendChild( li );
  88. }
  89.  
  90. return ul;
  91. }
  92. };
  93.  
  94. </script>
  95.  
要实现脚注,我们需要下列元素

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号