如何在60到0之间停止秒数

时间:2015-05-04 16:44:57

标签: javascript html

你好我刚接触javascript和html,我只是想知道如何在60到0停止第三个文本字段(txtS)。我试图制作一个时钟,所以秒需要停止60分钟和分钟应该开始递增。**

我只问是如何在60岁时停止秒。

<html >
<head>
    <title>clock</title>
    <script language="javascript">
        function fn_sample() {
            document.frm.txtS.value = parseInt(document.frm.txtS.value) + 1;
            var t1 = document.frm.txtS.value;
            if(t1>=60){

                t1 = 0;

            }
            window.setTimeout("fn_sample()", 1000);

        }


    </script>
</head>
<body>
    <form name="frm">
        <input type="text" name="txtH" value="0" size="2"/>
        <input type="text" name="txtM" value="0" size="2"/>
        <input type="text" name="txtS" value="0" size="2"/>
        <br /><br />
        <input type="button" value="Start" onclick="fn_sample();" />
    </form>
</body>

1 个答案:

答案 0 :(得分:1)

只需在闭括号后添加else即可根据之前的测试制作setTimeout

(对于演示,我已将超时减少到100等待6秒而不是60 ;-)。 注意确保完整循环的时间不超过1秒,每次操作之间不能睡1秒!更喜欢使用:window.setTimeout("fn_sample()",1000-(new Date()%1000));。这将一直有效,直到fn_sample()执行时间超过1秒。

        function fn_sample() {
            document.frm.txtS.value = parseInt(document.frm.txtS.value) + 1;
            var t1 = document.frm.txtS.value;
            if(t1>=60){

                document.frm.txtS.value = 0;

            } else
            window.setTimeout("fn_sample()",
                              100-(new Date()%100));

        }
    <form name="frm">
        <input type="text" name="txtH" value="0" size="2"/>
        <input type="text" name="txtM" value="0" size="2"/>
        <input type="text" name="txtS" value="0" size="2"/>
        <br /><br />
        <input type="button" value="Start" onclick="fn_sample();" />
    </form>