本文目錄一覽:
- 1、js計時器中setTimeout和setInterval的區別和使用
- 2、提問一段關於倒計時的javascript代碼,請大神指點
- 3、怎樣用javascript做一個計時器
- 4、用javascript寫一個計時器程序,有啟動暫停和複位
- 5、javascript倒計時時間代碼怎麼寫 比如在頁面上顯示3,2,1
- 6、誰能給我一個倒計時的代碼啊?
js計時器中setTimeout和setInterval的區別和使用
JavaScript 計時器
計時器類型:
一次性計時器(setTimeout):僅在指定的延遲時間之後觸發一次。
間隔性觸發計時器(setInterval):每隔一定的時間間隔就觸發一次。
計時器方法:
一.計時器setInterval()
在執行時,從載入頁面後每隔指定的時間執行代碼。
語法:
setInterval(代碼,交互時間);
參數說明:
1. 代碼:要調用的函數或要執行的代碼串。
2. 交互時間:周期性執行或調用表達式之間的時間間隔,以毫秒計(1s=1000ms)。
返回值:
一個可以傳遞給 clearInterval() 從而取消對”代碼”的周期性執行的值。
調用函數格式(假設有一個clock()函數):
setInterval(“clock()”,1000)
或
setInterval(clock,1000)
我們設置一個計時器,每隔100毫秒調用clock()函數,並將時間顯示出來,代碼如下:
!DOCTYPE HTML
html
head
meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″
title計時器/title
script type=”text/javascript”
var int=setInterval(clock, 100)
function clock(){
var time=new Date();
document.getElementById(“clock”).value = time;
}
/script
/head
body
form
input type=”text” id=”clock” size=”50″ /
/form
/body
/html
二.計時器setTimeout()
setTimeout()計時器,在載入後延遲指定時間後,去執行一次表達式,僅執行一次。
語法:
setTimeout(代碼,延遲時間);
參數說明:
1. 要調用的函數或要執行的代碼串。
2. 延時時間:在執行代碼前需等待的時間,以毫秒為單位(1s=1000ms)。
當我們打開網頁3秒後,在彈出一個提示框,代碼如下:
!DOCTYPE HTML
html
head
script type=”text/javascript”
setTimeout(“alert(‘Hello!’)”, 3000 );
/script
/head
body
/body
/html
當按鈕start被點擊時,setTimeout()調用函數,在5秒後彈出一個提示框。
!DOCTYPE HTML
html
head
script type=”text/javascript”
function tinfo(){
var t=setTimeout(“alert(‘Hello!’)”,5000);
}
/script
/head
body
form
input type=”button” value=”start” onClick=”tinfo()”
/form
/body
/html
要創建一個運行於無窮循環中的計數器,我們需要編寫一個函數來調用其自身。在下面的代碼,當按鈕被點擊後,輸入域便從0開始計數。
!DOCTYPE HTML
html
head
script type=”text/javascript”
var num=0;
function numCount(){
document.getElementById(‘txt’).value=num;
num=num+1;
setTimeout(“numCount()”,1000);
}
/script
/head
body
form
input type=”text” id=”txt” /
input type=”button” value=”Start” onClick=”numCount()” /
/form
/body
/html
提問一段關於倒計時的javascript代碼,請大神指點
你這個代碼看著我都有點暈,你看我這個吧
!DOCTYPE html
html
head lang=”ch”
meta charset=”UTF-8″
titlecountdown/title
/head
body
span id=”countdown”/span
script
var days, hours, minutes, seconds;
var target_date = new Date(“Jan 1, 2050”).getTime();
var countdown = document.getElementById(“countdown”);
setInterval(function () {
var current_date = new Date().getTime();
var seconds_left = (target_date – current_date) / 1000;
days = parseInt(seconds_left / 86400);
seconds_left = seconds_left % 86400;
hours = parseInt(seconds_left / 3600);
seconds_left = seconds_left % 3600;
minutes = parseInt(seconds_left / 60);
seconds = parseInt(seconds_left % 60);
countdown.innerHTML = days + “天, ” + hours + “小時, “
+ minutes + “分鐘, ” + seconds + “秒”;
}, 1000);
/script
/body
/html
怎樣用javascript做一個計時器
計時器, 在生活當中也是用得頻繁的功能, 比如鍛煉身體, 跑步比賽等等相關的活動. 我們用Javascript來完成一個計時器.
計時器, 主要就是對時間的一個邏輯處理, 比如60秒等於1分鐘, 60分鐘等於一個小時, 我們這裡只做到小時的處理. 就這麼一個簡單的邏輯, 然後動態的顯示在一個Input裡面.
那現在我們來完成這個界面
label計時:/label
input type=”text” name=”” id=”timer”/
button onclick=”pause(this)” id=”pause” state=”on”暫停/button
button onclick=”restart()”重新開始/button
給標籤元素一個ID是為了獲取其中的標籤, 然後加入了兩個點擊事件, 計數器的暫停, 和重新開始事件.
首先我們來完成開始計時的處理, 開始計時主要還是是用了setInterval的方法, 其中每隔1秒執行一次方法,
這樣我們就可以對時間做處理, 就像開頭所說60秒等於1分鐘…, 所以這裡就需要用判斷來處理, 最後就將其中的得到的秒,分,時顯示到輸入框里.
var ele_timer = document.getElementById(“timer”);
var n_sec = 0; //秒
var n_min = 0; //分
var n_hour = 0; //時
//60秒 === 1分
//60分 === 1小時
function timer() {
return setInterval(function () {
var str_sec = n_sec;
var str_min = n_min;
var str_hour = n_hour;
if ( n_sec 10) {
str_sec = “0” + n_sec;
}
if ( n_min 10 ) {
str_min = “0” + n_min;
}
if ( n_hour 10 ) {
str_hour = “0” + n_hour;
}
var time = str_hour + “:” + str_min + “:” + str_sec;
ele_timer.value = time;
n_sec++;
if (n_sec 59){
n_sec = 0;
n_min++;
}
if (n_min 59) {
n_sec = 0;
n_hour++;
}
}, 1000);
}
var n_timer = timer();
我們用timer方法包裝setInterval方法是為了,後面暫停和重新開始做處理.
用戶點擊了暫停, 計時器就停止計時, 用戶繼續點擊這個按鈕, 計時器繼續計時. 所以這裡有一個狀態需要控制,這個狀態我們給這個按鈕一個屬性.
//暫停和繼續
function pause(self) {
var state = self.getAttribute(“state”);
if (state === “on”) {
clearInterval(n_timer);
self.textContent = “繼續”;
self.setAttribute(“state”, “off”);
} else {
n_timer = timer();
self.textContent = “暫停”;
self.setAttribute(“state”, “on”);
}
}
最後我們來看一下重新開始, 重新開始事件就更加簡單了. 將計數器清0, 然後改變暫停按鈕初始狀態.
function restart() {
clearInterval(n_timer);
n_sec = 0;
n_min = 0;
n_hour = 0;
n_timer = timer();
var ele_pause = document.getElementById(“pause”);
ele_pause.textContent = “暫停”;
ele_pause.setAttribute(“state”, “on”);
}
這樣就完成了計時的功能.效果如下
用javascript寫一個計時器程序,有啟動暫停和複位
#html:
input type=”button” value=”啟動” id=”btnStart” /
input type=”button” value=”複位” id=”btnReset” /
label id=”lblTime”0:0:0:0/label
#javascript:
window.onload = function () {
var start = document.getElementById(“btnStart”);
var reset = document.getElementById(“btnReset”);
var time = document.getElementById(“lblTime”);
var h = 0, m = 0, s = 0, ms = 0, t;
//開始計時
start.onclick = function () {
bvalue = start.value;
if (bvalue == “啟動”) {
t = window.setInterval(function () {
if (ms == 100) {
s += 1;
ms = 0;
}
if (s == 60) {
m += 1;
s = 0;
}
if (m == 60) {
h += 1;
m = 0;
}
time.textContent = h + “:” + m + “:” + s + “:” + ms;
ms++;
}, 10);
start.value = “暫停”;
}
else {
window.clearInterval(t);
start.value = “啟動”;
}
}
//複位
reset.onclick = function () {
window.clearInterval(t);
time.textContent = 0 + “:” + 0 + “:” + 0 + “:” + 0;
}
}
javascript倒計時時間代碼怎麼寫 比如在頁面上顯示3,2,1
meta http-equiv=”Page-Enter” content=”revealTrans(duration=10, transition=4)”SCRIPT LANGUAGE=”JavaScript”
var maxtime =”3″;
function CountDown(){
if(maxtime=0){
minutes = Math.floor(maxtime/60);
seconds = Math.floor(maxtime%60);
msg = “你的文字說明”+minutes+”分”+seconds+”秒”;//動態顯示剩餘時間。
document.all[“timer”].innerHTML=msg;
//if(maxtime == 3) document.all[“timer”].innerHTML=’只剩3秒!’;
–maxtime;
}
else{
clearInterval(timer);
document.all[“timer”].innerHTML=’123′;
}
}
timer = setInterval(“CountDown()”,1000);
/SCRIPT
div id=timer/div
誰能給我一個倒計時的代碼啊?
第一種:精確到秒的javascript倒計時代碼
HTML代碼:
form name=”form1″
div align=”center” align=”center”
center離2010年還有:br
input type=”textarea” name=”left” size=”35″ style=”text-align: center”
/center
/div
/form
script LANGUAGE=”javascript”
startclock()
var timerID = null;
var timerRunning = false;
function showtime() {
Today = new Date();
var NowHour = Today.getHours();
var NowMinute = Today.getMinutes();
var NowMonth = Today.getMonth();
var NowDate = Today.getDate();
var NowYear = Today.getYear();
var NowSecond = Today.getSeconds();
if (NowYear 2000)
NowYear=1900+NowYear;
Today = null;
Hourleft = 23 – NowHour
Minuteleft = 59 – NowMinute
Secondleft = 59 – NowSecond
Yearleft = 2009 – NowYear
Monthleft = 12 – NowMonth – 1
Dateleft = 31 – NowDate
if (Secondleft0)
{
Secondleft=60+Secondleft;
Minuteleft=Minuteleft-1;
}
if (Minuteleft0)
{
Minuteleft=60+Minuteleft;
Hourleft=Hourleft-1;
}
if (Hourleft0)
{
Hourleft=24+Hourleft;
Dateleft=Dateleft-1;
}
if (Dateleft0)
{
Dateleft=31+Dateleft;
Monthleft=Monthleft-1;
}
if (Monthleft0)
{
Monthleft=12+Monthleft;
Yearleft=Yearleft-1;
}
Temp=Yearleft+’年, ‘+Monthleft+’月, ‘+Dateleft+’天, ‘+Hourleft+’小時, ‘+Minuteleft+’分, ‘+Secondleft+’秒’
document.form1.left.value=Temp;
timerID = setTimeout(“showtime()”,1000);
timerRunning = true;
}
var timerID = null;
var timerRunning = false;
function stopclock () {
if(timerRunning)
clearTimeout(timerID);
timerRunning = false;
}
function startclock () {
stopclock();
showtime();
}
// —
/script
第二種:某某運動會
HTML代碼:
!–倒計時Javascript begin–
script language=”JavaScript”
!–
function DigitalTime1()
{
var deadline= new Date(“08/13/2007”) //開幕倒計時
var symbol=”8月13日”
var now = new Date()
var diff = -480 – now.getTimezoneOffset() //是北京時間和當地時間的時間差
var leave = (deadline.getTime() – now.getTime()) + diff*60000
var day = Math.floor(leave / (1000 * 60 * 60 * 24))
var hour = Math.floor(leave / (1000*3600)) – (day * 24)
var minute = Math.floor(leave / (1000*60)) – (day * 24 *60) – (hour * 60)
var second = Math.floor(leave / (1000)) – (day * 24 *60*60) – (hour * 60 * 60) – (minute*60)
var deadline_2= new Date(“08/13/2004”) //開幕後計時
var symbol_2=”8月13日”
var now_2 = new Date()
var diff_2 = -480 – now.getTimezoneOffset() //是北京時間和當地時間的時間差
var leave_2 = (now_2.getTime() – deadline_2.getTime()) + diff_2*60000
var day_2 = Math.floor(leave_2 / (1000 * 60 * 60 * 24))
var hour_2 = Math.floor(leave_2 / (1000*3600)) – (day_2 * 24)
var minute_2 = Math.floor(leave_2 / (1000*60)) – (day_2 * 24 *60) – (hour_2 * 60)
var second_2 = Math.floor(leave_2 / (1000)) – (day_2 * 24 *60*60) – (hour_2 * 60 * 60) – (minute_2*60)
day=day+1;
day_2=day_2+1;
if (day0) //還未開幕
{
//LiveClock1.innerHTML = “現在”+symbol+”天”
LiveClock1.innerHTML = “font
setTimeout(“DigitalTime1()”,1000)
}
if (day0) //已經開幕
{
//LiveClock1.innerHTML = “現在離”+symbol+”還有”+day+”天”+hour+”小時”+minute+”分”+second +”秒”
LiveClock1.innerHTML = “font
setTimeout(“DigitalTime1()”,1000)
}
if (day==0) //正在開幕
{
//LiveClock1.innerHTML = “現在”+symbol+”天”
LiveClock1.innerHTML = “font
setTimeout(“DigitalTime1()”,1000)
}
if (day0 day_219) //某某運動會結束
{
//LiveClock1.innerHTML = “現在離”+symbol+”還有”+day+”天”+hour+”小時”+minute+”分”+second +”秒”
LiveClock1.innerHTML = “font
setTimeout(“DigitalTime1()”,1000)
}
}
// —
/script
!–倒計時Javascript end–
body onload=DigitalTime1()
div id= LiveClock1/div
/body 第三種:小時倒計時
HTML代碼:
SCRIPT LANGUAGE=”JavaScript”
!–
var maxtime = 60*60 //一個小時,按秒計算,自己調整!
function CountDown(){
if(maxtime=0){
minutes = Math.floor(maxtime/60);
seconds = Math.floor(maxtime%60);
msg = “距離結束還有”+minutes+”分”+seconds+”秒”;
document.all[“timer”].innerHTML=msg;
if(maxtime == 5*60) alert(‘注意,還有5分鐘!’);
–maxtime;
}
else{
clearInterval(timer);
alert(“時間到,結束!”);
}
}
timer = setInterval(“CountDown()”,1000);
//–
/SCRIPT
div id=”timer” style=”color:red”/div
第四種:最簡倒計時
HTML代碼:
Script Language=”JavaScript”
!– Begin
var timedate= new Date(“January 14,2006”);
var times=”研究生考試”;
var now = new Date();
var date = timedate.getTime() – now.getTime();
var time = Math.floor(date / (1000 * 60 * 60 * 24));
if (time = 0) ;
document.write(“lifont color=#DEDBDE現在離2006年”+times+”還有: font color=#ffffffb”+time +”/b/font 天/font/li”);
// End —
/Script
第五種:最簡倒計時二
HTML代碼:
script language=”JavaScript” type=”text/javascript”
function djs(){
var urodz= new Date(“11/12/2008”);
var now = new Date();
var num
var ile = urodz.getTime() – now.getTime();
var dni = Math.floor(ile / (1000 * 60 * 60 * 24));
if (dni 1)
num=dni+1
else if (dni == 1) num=2
else if (dni == 0) num=1
else num=0
document.write(num)
}
/script
距某某開幕式還有 [script language=”JavaScript” type=”text/javascript”djs()/script] 天
第五個:Javascript倒計時器 – 採用系統時間自校驗
這次利用系統時間自校驗倒計時, 無需手工調校使得倒計時更為精確, 代碼及詳細注釋如下:
span id=”clock”00:01:11:00/span
input id=”startB” type=”button” value=”start countdown!” onclick=”run()”
input id=”endB” type=”button” value=”stop countdown!” onclick=”stop()”
br
input id=”diff” type=”text”
input id=”next” type=”text”
script language=”Javascript”
/* This notice must be untouched at all times.
countdown.js v. 1.0
The latest version is available at
Copyright (c) 2004 Xinyi.Chen. All rights reserved.
Created 7/30/2004 by Xinyi.Chen.
Web:
E-Mail: chenxinyi1978@hotmail.com
Last modified: 7/30/2004
This program is free software;
you can redistribute it and/or modify it under the terms of the
GNU General Public License as published by the Free Software Foundation;
See the GNU General Public License
at for more details.
*/
var normalelapse = 100;
var nextelapse = normalelapse;
var counter;
var startTime;
var start = clock.innerText;
var finish = “00:00:00:00”;
var timer = null;
// 開始運行
function run() {
startB.disabled = true;
endB.disabled = false;
counter = 0;
// 初始化開始時間
startTime = new Date().valueOf();
// nextelapse是定時時間, 初始時為100毫秒
// 注意setInterval函數: 時間逝去nextelapse(毫秒)後, onTimer才開始執行
timer = window.setInterval(“onTimer()”, nextelapse);
}
// 停止運行
function stop() {
startB.disabled = false;
endB.disabled = true;
window.clearTimeout(timer);
}
window.onload = function() {
endB.disabled = true;
}
// 倒計時函數
function onTimer()
{
if (start == finish)
{
window.clearInterval(timer);
alert(“time is up!”);
return;
}
var hms = new String(start).split(“:”);
var ms = new Number(hms[3]);
var s = new Number(hms[2]);
var m = new Number(hms[1]);
var h = new Number(hms[0]);
ms -= 10;
if (ms 0)
{
ms = 90;
s -= 1;
if (s 0)
{
s = 59;
m -= 1;
}
if (m 0)
{
m = 59;
h -= 1;
}
}
var ms = ms 10 ? (“0” + ms) : ms;
var ss = s 10 ? (“0” + s) : s;
var sm = m 10 ? (“0” + m) : m;
var sh = h 10 ? (“0” + h) : h;
start = sh + “:” + sm + “:” + ss + “:” + ms;
clock.innerText = start;
// 清除上一次的定時器
window.clearInterval(timer);
// 自校驗系統時間得到時間差, 並由此得到下次所啟動的新定時器的時間nextelapse
counter++;
var counterSecs = counter * 100;
var elapseSecs = new Date().valueOf() – startTime;
var diffSecs = counterSecs – elapseSecs;
nextelapse = normalelapse + diffSecs;
diff.value = counterSecs + “-” + elapseSecs + “=” + diffSecs;
next.value = “nextelapse = ” + nextelapse;
if (nextelapse 0) nextelapse = 0;
// 啟動新的定時器
timer = window.setInterval(“onTimer()”, nextelapse);
}
/script
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/236052.html