JavaScript 动态网页实例 —— 文字显示

        本文章继续介绍文字效果。本章主要介绍文字显示特效,主要包括:文字的随机显示,打字效果的实现,UBB代码的实现,文字“右一左”顺序排列的实现,古汉语文字排版的实现,以及蒙古族文字排版的实现。其中,文字的“右一左”顺序排列和古汉语文字排版也可以单独使用 HTML实现,应用到的JavaScript技术不多,本文章只提供一种用 JavaScript 实现的思路。

随机显示

本节实例给出随机显示文字的实现方法。当用户刷新页面时,会显示不同的文字。应用在网页中,可以实现随机提示和提醒,或者随页面的刷新显示不同的警句和格言等。

要点

本节代码主要使用了new运算符以及 Math 对象的foor(n)方法和random()方法,主要功能和用法如下。

  • new 运算符用于定义数组对象。其语法格式为“var 数组名=new Aray();”其中的“数组名”可以是任意符合JavaScript语法要求的变量名。
  • foor(n)方法用于求小于或等于n的整数。其中n是一个数值型或可转换为数值型的常量、变量或表达式。
  • random()方法用于求0~1之间的随机数。在 Math 对象的所有方法中,只有该方法是不带参数的。
  • 要使用 foor(n)方法和 random()方法,需写为 Math.floor(n)和 Math.random()的形式。二者经常结合使用,用于生成不同范围的随机数。
  • 若要生成0和n之间的随机数,可使用“Math.floor(Math.random()*n)”的形式;若要生成m和n(m<n)之间的随机数,可以使用“Math.floor(Math.random()*n)+m”的形式。
<script language="JavaScript">
<!--
//定义一个数组,存储要随机显示的内容。
var myArr=new Array(
"修改或删除一个已有的注册条目",
"修改二进制数据类型的注册表值",
"修改字符串数据类型的注册表值",
"修改可扩充字符串数据类型的",
"为用户设置子菜单显示延迟",
"为用户设置登录屏幕背景色",
"给新的上下文菜单添加文件"
);
//画出一个表格,用来格式化输出的内容
document.write("<table border=1 bordercolor=green cellpadding=10 cellspacing=10")
document.write("<tr><td>数组的全部内容为:</td>");
document.write("<td>");
for(i=0;i<myArr.length;i++){
//显示所有数组元素
document.write("<pre>"+myArr[i]+"</pre>");
}
document.write("</td></tr>");
//定义一个1到数组长度之间的随机数
var i=Math.floor(Math.random()*(myArr.length))
document.write("<tr><td>随机显示的内容:</td>");
document.write("<td bgcolor=green>");
//显示随机选取的数组元素
document.write("<pre><font color=white>"+myArr[i]+"</font></pre>");
document.write("</td></tr></table>");
//-->
</script>

分析

  • (1)程序定义了一个有7个元素的数组,数组的每个元素都是一段文本。在实际应用中,文本会有所不同,读者可以更换为自己喜欢的内容。
  • (2)后面的程序分为两个部分。前一部分使用一个for循环列出该数组的所有元素。后一部分则使用一个随机数,从数组元素中随机选取一个元素进行显示。
  • (3)为使显示效果更清晰,为两个部分的输出结果增加了表格。表格的所有属性都使用JavaScript 的document.write( )输出。
  • (4)随机数使用“Math.floor(Math.random()*(myArr.length));”产生。其中,myArr.length是数组myArr 的长度(元素个数)。
  • (5)由于代码使用了myArr.length,而不是用数字7表示数组的长度,因此,对于该段代码,只需增减数组元素内容,而不必改变其他部分的代码,程序依旧能够正常运行,显示正常结果。

打字效果

本节实例实现页面文字的打字输出效果。当载入页面时,预先设定的文字就会以打字效果逐个输出。每个字符输出完毕,其后都紧跟一个光标符号。

要点

        本节代码主要用到数组元素的引用,Sting对象的substring(方法,Window对象的setTimeout()方法,以及字符串的1ength属性。主要功能和用法如下。

  • 数组可以使用“数组名[n]”的方式进行引用。需要注意,数组下标是从0开始的。
  • String对象的 substring(m,n)方法用于对字符串进行处理,返回从开始位置到结束位置前的所有字符组成的子字符串。
  • Window 对象的 setTimeout(要执行的事件,时间)方法用于设定某事件执行的时间间隔。其中“要执行的事件”是用户设定要系统自动执行的事件,“时间”是要间隔的时间,单位为 ms。
  • 可以在超时事件未执行前中止该超时设置,使用Window 对象的 clearTimeout( )方法来实现。其语法为“clearTimeout(timerld)”。
  • 字符串的 lengt属性用于获取当前字符串的长度(包含的字符个数)。其引用方法为“字符串名称.length”。
<script language="JavaScript">
<!--
//定义一个变量,用来存储文本长度
var max=0;
function KeepText(){    //函数:用来保存文本
max=KeepText.arguments.length;
for(var i=0;i<max;i++)
this[i]=KeepText.arguments[i];
}
//要显示的文本的内容
myText=new KeepText("靠化妆品增白肌肤,只能一时掩饰,治表不治本。现向你介绍一种治表治本能使皮肤增白而真白的妙方,既简单又有特效:用白醋、甘油、按5:1混合,常搽皮肤(一日2、3次),能使皮肤湿润,减少黑色素沉积,一月后皮肤即细腻白嫩,洁净光滑富有弹性,充满美感。(此方对遗传性黑皮肤均有疗效。)");
var x=0,pos=0;
var len=myText[0].length;
function TypeText(){   //函数:用来显示文本
document.typeForm.typeField.value=myText[x].substring(0,pos)+"_";
if(pos++==1){
//显示结束后重新开始,间隔为2秒
setTimeout("TypeText()",2000);
if(++x==max) x=0;
len=myText[x].length;
}
else
//如果未显示结束则继续显示,间隔0.3秒
setTimeout("TypeText()",300);
}
//-->
</script>

分析

  • (1)程序使用一个文本区来显示文字的输出效果。通过为“<body>”标签添加 onload 事件,当页面载入时调用TypeText()函数,自动完成文字的输出显示。
  • (2)程序中定义了一个只有一个元素的数组myText,并且该数组元素是一个字符串,因此,对其引用可以使用 myText[0],而对其长度的引用可以使用 myText[0].length。
  • (3)在TypeText()函数中,通过文本区的value 属性进行调用并为其重新赋值(document.typeForm.typeField.value=myText[x].substring(0,pos)+"";),实现文字在文本区的输出。
  • (4)在TypeText()函数中,通过将“pos++”与“1”进行比较,调用KeepText( )函数,实现文字的输出,并为该函数设置超时,可使该函数连续自动执行,以实现打字效果。读者可修改该数值,观察打字的快慢。
  • (5)程序使用了onload 事件调用TypeText()函数,也可以设置一个按钮,将按钮的 onclick事件与处理函数绑定,以控制打字效果的开始时间。

UBB 代码实例

        UBB标签经常在论坛中使用,可以为用户发表的内容添加多种格式效果,如粗体字、斜体字、阴影字、邮件地址、链接地址、引用、列表效果等。每个UBB 标签都对应一段 UBB代码,用以实现该标签的功能。这些代码通常由脚本语言调用相应的HTML代码实现。本节实例给出一个通用的UBB代码实例,几乎集成了所有可以在网页中直接设置的格式。读者只需简单修改网页元素的布局,就可以直接应用在自己的网页中。

要点

        本节代码虽长,但应用的内容不多。主要包括:字符串的连接操作、逻辑值直接作

  • 27
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值