JS教程:线小测试程序
剩余的时间,以便提示用户。
前面我们已经知道,当调用resetQuiz()函数时,将复位在线小测试程序,并将全局变量timeLeft设置为以秒为单位的时限值,在规定的时间内用户必须完成小测试。每隔1s将调用一次updateTimeLeft()函数,在updateTimeLeft()函数的第一行代码中,将剩余的时间减去1s: timeLeft--; 其后的if语句用以检查timeLeft是否为0,即是否还有剩余时间。如果timeLeft为0,则表示无剩余时间,这时将变量numberOfQuestionsAsked的值设置为全局变量totalQuestionsToAsk的值,即用户所选择的要回答问题的数量。接着,将页面导航到AskQuestion.htm页面,在该页面中将认为问题已经回答完毕并终止小测试程序,而不是继续提出一个新问题。 如果还有剩余时间,则该if语句的else子句将被执行,并更新浏览器的状态栏,以显示剩余的分钟数和秒数。 这里,需要将timeLeft中保存的以秒为单位的时间值拆分成分钟数和秒数。首先,可以使用下面这行代码获取分钟数的值: var minutes = Math.floor(timeLeft / 60); 上面的代码将返回变量timeLeft中保存的总秒数除以60的商的整数部分,这正是我们所需要的分钟数。而下面的代码则用以获得秒数: var seconds = timeLeft - (60 * minutes); 在上面的代码中,用总的秒数timeLeft减去分钟数所对应的秒数,即可得到除去分钟数之后剩余的秒数。例如,如果timeLeft是61,则分钟数为: minutes = 61 / 60 = 1.01667 取整后将返回整数1,表示1分钟,而剩余的秒数为: seconds = 61 - (60 * 1) = 1 我们希望按“分钟:秒钟”的格式将剩余时间显示在浏览器的状态栏中,例如对于上面的例子,希望将剩余时间显示为01:01。但是,当分钟或者秒钟的值小于10时,把分钟和秒钟的字符串连接起来将是1:1这样一个字符串。对于在线小测试程序,分钟数不会超过5,实际上只需直接在前面加上0即可。但是,为了使代码能适应未来需求发生的变化—— 例如允许用户回答问题的时间超过9分钟,则应使用if语句进行检查,以便确定分钟数是否小于10。 要修正格式问题,只需在分钟数或秒钟数小于10时,在其前面添加一个额外的0即可,相应代码如下所示: if (minutes < 10) minutes = "0" + minutes; if (seconds < 10) seconds = "0" + seconds; 最后,更新浏览器状态栏中剩余时间的显示: window.status = "Time left is " + minutes + ":" + seconds; 在前面的这两个函数 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |