JS笔记一

时间:2021-02-04 23:26:07

最近有时间,觉得应该整理一下,额,就从很久之前的基础开始吧,正好也巩固下,菜鸟需要扎实基础。

下面是一个简单的调查表,因为没有写任何样式,所以就是简单的表单输入框之类的。选择“男”或者“女”时,会出现对应的开支项,效果如下:

JS笔记一  JS笔记一  JS笔记一  JS笔记一

当时我就想,在网上经常会看见那种提示几秒后跳转至某某页面之类的,那我能不能在出现结果后也加一个这样的小效果呢,于是就动手了 (^∇^*)

很简单,在outPrint()函数中,打印结果的时候,也打印个提示“将在3秒后跳转至百度首页”:

function outPrint(name,age,money,result) {
var str = "你好" + name + ",现在" + age + "岁," + "月收入" + money + ",月结余:" + result;
document.write(str + "<br>" + "将在3秒后跳转至百度首页"); // setTimeout()延迟执行的方法。3秒后,该页面跳转至指定页面
setTimeout(function () {
location.href = "https://www.baidu.com/";
}, 3000); }

但是,这个时间没有倒计时啊,还是有倒计时比较好,幸好有注释的好习惯,不然这么久,都不记得当时琢磨的艰辛之路了 O(∩_∩)O~

想着加个定时器就可以了:

function outPrint(name,age,money,result){
var str = "你好" + name +",现在" + age + "岁," + "月收入" + money + ",月结余:" + result ;
document.write( str + "<br>"); //倒计时
var t = 3;//设定跳转的时间
setInterval(function(){
document.write( t + "秒后跳转至百度首页" );
t--; // 计数递减
if(t==0){
location="http://www.baidu.com"; //设定跳转的链接地址
} },1000); }

没想到倒计时是有了,可是文字也重复打印:

JS笔记一

能不能在定时器打印中只打印t??

function outPrint(name,age,money,result){
var str = "你好" + name +",现在" + age + "岁," + "月收入" + money + ",月结余:" + result ;
document.write( str + "<br>"); //倒计时
var t = 3;//设定跳转的时间
setInterval(function(){
document.write( t ); //
t--; // 计数器递减
if(t==0){
location="http://www.baidu.com"; //设定跳转的链接地址
}
},1000); document.write("秒后跳转至百度首页" );
}

额,结果是不能:

JS笔记一

后来,在查资料的时候发现 document.close() 方法是用来关闭输出流的,所以,可以在页面每次输出“t秒后跳转至百度首页” 后,把之前的输出关闭,每秒调用定时器函数和倒计时同步,所以关闭输出应该放在定时器函数中。

function outPrint(name,age,money,result){
var str = "你好" + name +",现在" + age + "岁," + "月收入" + money + ",月结余:" + result ;
document.write( str + "<br>");
setTimeout(function(){ //可以给用户2秒的时间看结果
document.close();
//倒计时
var t = 3;//设定跳转的时间
setInterval(function(){
document.write( t + "秒后跳转至百度首页" );
t--; // 计数器递减
if(t==0){
location="http://www.baidu.com"; //设定跳转的链接地址
}
document.close();
},1000);
},2000);

最终效果:

JS笔记一   JS笔记一  JS笔记一  JS笔记一