网站首页/技术开发列表/内容

运用JS代码捕获状态栏变化信息

技术开发2023-06-21阅读
编程(Programming)是编定程序的中文简称,就是让计算机代码解决某个问题,对某个计算体系规定一定的运算方式,使计算体系按照该计算方式运行,并最终得到相应结果的过程。为了使计算机能够理解(understand)人的意图,人类就必须将需解决的问题的思路、方法和手段通过计算机能够理解的形式告诉计算机,使得计算机能够根据人的指令一步一步去工作,完成某种特定的任务。这种人和计算体系之间交流的过程就是编程。

【实例名称】

JS代码捕获状态栏变化信息

【实例描述】

状态栏除可以实现文本滚动显示功能外,还可以通过数组实现信息的变化显示。本例学习如何在状态栏变化显示一组信息。

【实例代码】

<html xmlns="http://www.w3.org/1999/xhtml" > <head> <title>标题页-本站(www.xue51.com)</title> <script language="JavaScript"> //设置显示速度等变量 var speed = 10     //显示字与字的间隔 var pause = 1500   //显示第二组的间隔 var timerID = null var statusRun = false //设置要提示的文本数组 var ar = new Array() ar[0] = "这是第一组" ar[1] = "这是第二组" ar[2] = "这是第三组"

var message = 0 var state = "" clearState() //停止显示-也可作初始化显示 function stopStatus() {         if (statusRun)                 clearTimeout(timerID)         statusRun = false } //开始显示 function startStatus() {         stopStatus()         showStatus() } //初始化开始数据 function clearState() {         state = ""         for (var i = 0; i < ar[message].length; ++i) {                 state += "0"         } } //在状态栏显示信息 function showStatus() {         //判断是否显示下一组         if (getString()) {                 message++                 if (ar.length <= message)                         message = 0                 clearState()                 timerID = setTimeout("showStatus()", pause) //间隔1500毫秒显示下一组                 statusRun = true         } else {                 var str = ""                 for (var j = 0; j < state.length; ++j) {                         str += (state.charAt(j) == "1") ? ar[message].charAt(j) : "     "                 }                 window.status = str                 timerID = setTimeout("showStatus()", speed) //间隔10毫秒显示下一字                 statusRun = true         } } //用来判断显示组还是字的方法 function getString() {         var full = true         //此循环判断是否当前组数据没有显示完成         for (var j = 0; j < state.length; ++j) {                 if (state.charAt(j) == 0)  //初始时默认state都为0                         full = false         }         //full为真时,表示当前组数据显示完成         if (full)                 return true         while (1) {                 var num = getRandom(ar[message].length)                 if (state.charAt(num) == "0")                         break         }         state = state.substring(0, num) + "1" + state.substring(num + 1, state.length)         return false } //随机数的读取 function getRandom(max) {         return Math.round((max - 1) * Math.random()) } </script> </head> <body onLoad="startStatus()"> </body> </html>

【运行效果】

运行效果

【难点剖析】

本例的重点在于如何判断第一组已经显示完毕,如何在第一组显示完毕后再调用第二组。本例通过“getString”方法判断当前组是否显示完毕,然后通过“setTimeout”定时器.继续掉用后面的组。

【源码下载】

本实例JS代码下载

 


使用编程语言写的程序,由于每条指令都对应计算机一个特定的基本动作,所以程序占用内存少、执行效率高。

……

相关阅读