zl程序教程

您现在的位置是:首页 >  前端

当前栏目

用Javascript和CSS实现脚注(Footnote)效果

JavaScriptCSS 实现 效果
2023-06-13 09:14:12 时间
不过,既然脚注有这些好处,我们当然要在网页中也加以利用,本文向您介绍了用Javascript和CSS实现脚注效果的方法。
复制代码代码如下:

<scripttype="text/javascript">
//说明:用Javascript和CSS实现脚注(Footnote)效果
varfootNotes=function(){};
footNotes.prototype={
footNoteClassName:"footnote",//脚注的className
footNoteTagName:"span",//脚注的标签名
footNoteBackLink:"[back]",//返回链接
format:function(contentID,footnoteID)
{
if(!document.getElementById)returnfalse;
varcontent=document.getElementById(contentID);
varfootnote=document.getElementById(footnoteID);
varspans=content.getElementsByTagName(this.footNoteTagName);
varnoteArr=[];
varnote=0;
varelContent;
varlen=spans.length;
for(i=0;i<len;i++)
{
note++;
if(spans[i].className==this.footNoteClassName)
{
//获取脚注内容
elContent=spans[i].innerHTML;
noteArr.push(elContent);
//创建一个指向脚注的链接
varnewEle=document.createElement("a");
newEle.href="#ftn_"+footnoteID+"_"+note;
newEle.title="showfootnote";
newEle.id="ftnlink_"+footnoteID+"_"+note;
newEle.innerHTML=note;
//清空原有内容
while(spans[i].childNodes.length)
{
spans[i].removeChild(spans[i].firstChild);
}
spans[i].appendChild(newEle);
}
}
//创建注释列表
varul=this.__buildNoteList(noteArr,footnoteID);
footnote.appendChild(ul);
},
__buildNoteList:function(notes,noteID)
{
if(!notes||notes.length<1)return;
varul=document.createElement("ul");
ul.className=this.footNoteClassName;
varli;
varlen=notes.length+1;
for(i=1;i<len;i++)
{
li=document.createElement("li");
li.id="ftn_"+noteID+"_"+i;
li.innerHTML=notes[i-1];
//创建【返回】链接
varlink=document.createElement("a");
link.href="#ftnlink_"+noteID+"_"+i;
link.innerHTML=this.footNoteBackLink;
li.appendChild(link);
ul.appendChild(li);
}
returnul;
}
};
</script>

要实现脚注,我们需要下列元素:
复制代码代码如下:

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

其中:
article1是你需要脚注的文章主体
<spanclass="footnote">..</span>是注释内容,标签span和class均可配置。
artnotes1是显示脚注的地方
按照默认的设置调用方式:
复制代码代码如下:
<scripttype="text/javascript">
varfootnote=newfootNotes();
footnote.format("article1","artnotes1");
</script>

如果你想自定义一些内容,可以用下面的方式:
复制代码代码如下:
<scripttype="text/javascript">
varfootnote=newfootNotes();
footnote.footNoteClassName="footnote2";
footnote.footNoteTagName="em";
footnote.footNoteBackLink="[back«]";
footnote.format("article1","artnotes1");
</script>

测试代码:将下面的代码保存运行。
复制代码代码如下:
<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtml">
<head>
<metahttp-equiv="content-type"content="text/html;charset=gb2312"/>
<metaname="keywords"content="注释,css,Javascript,footnote,脚注,"/>
<metaname="description"content="脚注(Footnote)是向用户提供更多信息的一个最佳途径,也是主体信息的一个有效补充,常见于各种印刷书籍中。不过,既然脚注有这些好处,我们当然要在网页中也加以利用,本文向您介绍了用Javascript和CSS实现脚注效果的方法。"/>
<title>用Javascript和CSS实现脚注(Footnote)效果-注释,css,Javascript,footnote,脚注,</title>
</head>
<body>
<divclass="ad">
</div>
<br/>
<divid="example">
    <h3id="example_title">用 Javascript 和 CSS 实现脚注(Footnote)效果</h3>
    <divid="example_main">
<!--*************************************实例代码开始*************************************-->
<styletype="text/css">
a{
    font-weight:bold;
    text-decoration:none;
    color:#f30;
}
a:hover{
    color:#FFA200;
}
#wrapper{
    width:500px;
    margin:0auto;
    text-align:left;
}
#wrapperp{line-height:200%;font-size:14px;}
/*
================================================
stylingforfootnotesbeginshere
================================================
*/
div.footnoteHolder{
    border-left:1pxsolid#ccc;
    margin:20px050px20px;
    padding:20px10px;
    font-size:12px;
    line-height:150%;
}
span.footnote{
    vertical-align:super;
    font-size:10px;
}
ul.footnote,ul.footnoteli{
    margin:0;
    padding:0;
}
ul.footnoteli{
    list-style-type:decimal;
    margin:3px03px20px;
    color:#777;
}
em.footnote2{
    vertical-align:super;
    font-size:10px;
}
ul.footnote2,ul.footnote2li{
    margin:0;
    padding:0;
}
ul.footnote2li{
    list-style-type:decimal;
    margin:3px03px20px;
    color:#678BB2;
}
</style>
<scripttype="text/javascript">
//说明:用Javascript和CSS实现脚注(Footnote)效果
//作者:CodeBit.cn(http://www.CodeBit.cn)
varfootNotes=function(){};
footNotes.prototype={
    footNoteClassName:"footnote",    //脚注的className
    footNoteTagName:"span",    //脚注的标签名
    footNoteBackLink:"[back]",    //返回链接
    format:function(contentID,footnoteID)
    {
        if(!document.getElementById)returnfalse;
        varcontent=document.getElementById(contentID);
        varfootnote=document.getElementById(footnoteID);
        varspans=content.getElementsByTagName(this.footNoteTagName);
        varnoteArr=[];
        varnote=0;

        varelContent;
        varlen=spans.length;
        for(i=0;i<len;i++)
        {
            note++;
            if(spans[i].className==this.footNoteClassName)
            {
                //获取脚注内容
                elContent=spans[i].innerHTML;
                noteArr.push(elContent);
                //创建一个指向脚注的链接
                varnewEle=document.createElement("a");
                newEle.href="#ftn_"+footnoteID+"_"+note;
                newEle.title="showfootnote";
                newEle.id="ftnlink_"+footnoteID+"_"+note;

                newEle.innerHTML=note;

                //清空原有内容
                while(spans[i].childNodes.length)
                {
                    spans[i].removeChild(spans[i].firstChild);
                }

                spans[i].appendChild(newEle);
            }
        }
        //创建注释列表
        varul=this.__buildNoteList(noteArr,footnoteID);
        footnote.appendChild(ul);
    },
    __buildNoteList:function(notes,noteID)
    {
        if(!notes||notes.length<1)return;

        varul=document.createElement("ul");
        ul.className=this.footNoteClassName;
        varli;
        varlen=notes.length+1;
        for(i=1;i<len;i++)
        {
            li=document.createElement("li");
            li.id="ftn_"+noteID+"_"+i;
            li.innerHTML=notes[i-1];
            //创建【返回】链接
            varlink=document.createElement("a");
            link.href="#ftnlink_"+noteID+"_"+i;
            link.innerHTML=this.footNoteBackLink;
            li.appendChild(link);
            ul.appendChild(li);
        }
        returnul;
    }
};
</script>
<divid="wrapper">
<divid="content">
    <divid="article1">

    <h2>Article1</h2>
    <p>在编程的过程中,我们通常都会积累很多简单、有效并且可重用的小段代码,一个简单的字符串处理函数<spanclass="footnote">函数是将唯一的输出值赋予每一输入的『法则』(Wikipedia)。</span>或者一个验证邮件地址的正则表达式<spanclass="footnote">正则表达式(RegularExpression)描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子串等。</span>,又或者一个简单的文件上传类,甚至一个效果不错的CSS<spanclass="footnote">CSS是CascadingStyleSheet的缩写。译作「层叠样式表单」。是用于(增强)控制网页样式并允许将样式信息与网页内容分离的一种标记性语言。</span>导航样式。这些小技巧为我们节省了不少时间,但是时间一长,代码数量越来越多,寻找起来也耗费了不少时间。因此,本站致力于收集整理一些类似的小知识,并且努力提高文章搜索质量,一来方便大家查阅,二来也算是支持一下开源事业。
    </p>
    <p>本站收集的代码和教程中,有从世界著名开源软件中摘取的函数、类<spanclass="footnote">类是对某个对象的定义。它包含有关对象动作方式的信息,包括它的名称、方法、属性和事件。</span>,也有网友提交的原创或翻译的精彩文章。本站的收录代码的标准是:简单、精彩、通用。
    </p>

    </div>

    <divid="artnotes1"class="footnoteHolder"></div>

    <divid="article2">

    <h2>Article2</h2>
    <p>在编程的过程中,我们通常都会积累很多简单、有效并且可重用的小段代码,一个简单的字符串处理函数<emclass="footnote2">函数是将唯一的输出值赋予每一输入的『法则』(Wikipedia)。</em>或者一个验证邮件地址的正则表达式<emclass="footnote2">正则表达式(RegularExpression)描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子串等。</em>,又或者一个简单的文件上传类,甚至一个效果不错的CSS<emclass="footnote2">CSS是CascadingStyleSheet的缩写。译作「层叠样式表单」。是用于(增强)控制网页样式并允许将样式信息与网页内容分离的一种标记性语言。</em>导航样式。这些小技巧为我们节省了不少时间,但是时间一长,代码数量越来越多,寻找起来也耗费了不少时间。因此,本站致力于收集整理一些类似的小知识,并且努力提高文章搜索质量,一来方便大家查阅,二来也算是支持一下开源事业。
    </p>
    <p>本站收集的代码和教程中,有从世界著名开源软件中摘取的函数、类<emclass="footnote2">类是对某个对象的定义。它包含有关对象动作方式的信息,包括它的名称、方法、属性和事件。</em>,也有网友提交的原创或翻译的精彩文章。本站的收录代码的标准是:简单、精彩、通用。
    </p>

    </div>

    <divid="artnotes2"class="footnoteHolder"></div>
</div>
<scripttype="text/javascript">
//<![CDATA[
    varfootnote=newfootNotes();
    footnote.format("article1","artnotes1");
    varfootnote2=newfootNotes();
    footnote2.footNoteClassName="footnote2";
    footnote2.footNoteTagName="em";
    footnote2.footNoteBackLink="[back«]";
    footnote2.format("article2","artnotes2");
//]]>
</script>
</div>
<!--*************************************实例代码结束*************************************-->
    </div>
    <divid="back"><ahref="/pub/html/javascript/tip/footnotes_with_javascript_and_css/">返回『用Javascript和CSS实现脚注(Footnote)效果』</a></div>
</div>
<br/>
<divclass="ad">
    </div>
</body>
</html>