0

1分から0秒までカウントダウンしてからメッセージを表示することで、Webページにタイムアウトを作成しようとしています。ユーザーがマウスを動かした場合 (つまり、ページ上でまだアクティブな場合)、タイマーはリセットされます。リセット機能で値をリセットできません。それがしているのは、以前よりも速く時間をカウントダウンし、壊れないサイクルに陥っています。

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
        <script type="text/javascript">

            var mins = 1;
            var secs = 0;
            var timer;

            function start()
                {
                    timer = setInterval("update()", 1000);
                }

                function reset() {
                    var mins = 1
                    var secs = 0;
                    var timer;
                    start();
                }

            function update()
                {
                    var timeField = document.getElementById("time");
                    if (secs == 0)
                        {
                            if (mins == 0)
                                {
                                    timeField.innerHTML = "Time's up!";
                                    clearInterval(timer);
                                    alert("Time's up");
                                    return;
                                }

                            mins--;
                            secs = 59;
                        }
                        else 
                            {
                            secs--;
                            }
                        if (secs < 10)
                            {
                            timeField.innerHTML = 'Time left: ' + mins + ':0' + secs;
                        }
                        else
                             {
                             timeField.innerHTML = 'Time left: ' + mins + ':' + secs;
                             }       
                        }
</script>
</head>
<body onload="start();" onmousemove="reset();">
        <div id="time" >
        </div>
</body>
</html>

カウントダウンをリセットしてもう一度開始するにはどうすればよいですか? 私はjavascriptが初めてなので、しばらくお待ちください。

4

1 に答える 1

2

リセット機能を変更し、

function reset() {
    mins = 1;
    secs = 0;

    window.clearInterval(timer);

    start();
}

すべての機能の外でタイマーを宣言します。

于 2012-12-18T03:59:23.160 に答える