深入理解setTimeout函數(shù)和setInterval函數(shù)
來源:易賢網(wǎng) 閱讀:704 次 日期:2016-06-25 14:39:00
溫馨提示:易賢網(wǎng)小編為您整理了“深入理解setTimeout函數(shù)和setInterval函數(shù)”,方便廣大網(wǎng)友查閱!

下面小編就為大家?guī)硪黄钊肜斫鈙etTimeout函數(shù)和setInterval函數(shù)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。

前幾天學(xué)了js,看到了兩個非常有趣的函數(shù),他們分別是setTimeout函數(shù)和setInterval函數(shù),這兩個函數(shù)能使網(wǎng)頁呈現(xiàn)非常一些網(wǎng)頁中比較常見的效果,比如說圖片輪播,等一些非常好玩的效果。下面就來一起來了解這兩個函數(shù)吧!

一setTimeout函數(shù)和setInterval函數(shù)的語法以及應(yīng)用

1.setTimeout函數(shù)

定義和用法:setTimeout()方法用于在指定的毫秒數(shù)后調(diào)用函數(shù)或計(jì)算表達(dá)式。  

語法:setTimeout(code,millisec);

參數(shù):

code (必需):要調(diào)用的函數(shù)后要執(zhí)行的 JavaScript 代碼串。   

millisec(必需):在執(zhí)行代碼前需等待的毫秒數(shù)?! ?/P>

提示:

setTimeout() 只執(zhí)行 code 一次。如果要多次調(diào)用,請使用 setInterval() 或者讓 code 自身再次調(diào)用 setTimeout()。

返回值

一個可以傳遞給 Window.clearTimeout() 從而取消對 code 的周期性執(zhí)行的值。

既然setTimeout是一個定時器函數(shù),那么就有一個一個函數(shù)來清理定時器,那我們就用到了clearTimeout函數(shù)。

clearTimeout(setTimeout()返回的ID值);

2.setInterval定義

setInterval() 方法可按照指定的周期(以毫秒計(jì))來調(diào)用函數(shù)或計(jì)算表達(dá)式。

setInterval() 方法會不停地調(diào)用函數(shù),直到 clearInterval() 被調(diào)用或窗口被關(guān)閉。由 setInterval() 返回的 ID 值可用作 clearInterval() 方法的參數(shù)。

語法

setInterval(code,millisec[,"lang"]);

參數(shù)code必需。要調(diào)用的函數(shù)或要執(zhí)行的代碼串。

millisec必須。周期性執(zhí)行或調(diào)用 code 之間的時間間隔,以毫秒計(jì)

返回值

一個可以傳遞給 Window.clearInterval() 從而取消對 code 的周期性執(zhí)行的值。

既然setTimeout是一個定時器函數(shù),那么就有一個一個函數(shù)來清理定時器,那我們就用到了clearInterval()函數(shù)。

clearInterval()(setInterval()返回的ID值);

二.案例:

倒計(jì)時效果

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>

  <title>倒計(jì)時效果</title>

  <script type="text/ecmascript">

    //使用js方式實(shí)現(xiàn)倒計(jì)時效果

    var t1;

    window.onload = function () {

      //01定位到開始按鈕返回一個dom對象

      var btns = document.getElementById('btnStart');

      //02.給開始按鈕注冊單擊事件

      btns.onclick = function () {

        //執(zhí)行ssetInerval函數(shù)第一個參數(shù)要定時執(zhí)行的函數(shù),第二個參數(shù)該函數(shù)每個多少毫秒執(zhí)行一次

        t1= setInterval(start, 1000);

      }

      //03定位到停止按鈕返回一個dom對象

      var btnst = document.getElementById('btnStop');

      btnst.onclick = function () {

        clearInterval(t1);

      }

    }

    //要隔1秒執(zhí)行的函數(shù)

    function start() {

      //01.獲取div中的文本賦值給一個變量

      var divdom = document.getElementById('msg');

      var divnum = divdom.innerText;

      //判斷divnum的值是否為0

      if (divnum > 0) {

        divnum--;

        //把減過的值重新賦值給divnum

        divdom.innerText = divnum;

      }

    }

  </script>

</head>

<body>

  <input type="button" id="btnStart" value="開始" />

  <input type="button" id="btnStop" value="停止" /><br />

  <div id="msg">10</div>

</body>

</html>

背景圖片切換:

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>

  <title></title>

  <script type="text/javascript">

    var count = 1;//定義初始變量默認(rèn)為第一張圖片

    window.onload = function () {

      //使用定時器函數(shù)每隔一秒定義執(zhí)行一次show函數(shù)

      setInterval(show,1000);

    }

    //要執(zhí)行的函數(shù)

    function show() {

      //如果圖片到達(dá)最后一張(5張),就將下一張顯示的圖片改為第一張,如果沒有到達(dá)最后一張就將顯示下一張圖片

      if (count > 5) {

        count = 1;

      }

      else {

        count++;

      }

      //獲取id為myimg的dom對象

      var dom = document.getElementById("myimg");

      //改變img標(biāo)簽的src屬性指向,改變圖片

      dom.src = "image/"+count+".jpg"

    }

  </script>

</head>

<body>

  <img src="image/1.jpg" alt="Alternate Text" width="200px" height="200px" id="myimg" />

</body>

</html>

點(diǎn)名器:

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>

  <title></title>

  <script type="text/javascript">

    //定義一個數(shù)組保存該點(diǎn)名器中的基本數(shù)據(jù)

    var data = ['張三', '李四', '王二', '小陳', '小張'];

    var i = 0;//聲明一個初始變量默認(rèn)讓第一個人顯示在頁面上

    var t1;

    window.onload = function () {

      //02.獲取開始點(diǎn)名按鈕的dom對象給該對象注冊單擊事件

      var dom = document.getElementById("mybtn");

      dom.onclick = function () {

        //使用setInterval函數(shù)隔500毫秒調(diào)用一次result函數(shù)

        t1 = setInterval(start, 500);

        //該方法隔6秒他只調(diào)用一次

        setTimeout(stop,6000);

      }

      //定義一個匿名函數(shù)把他賦值給一個變量result

       var start= function() {

        //03獲取h1標(biāo)簽對象,給h1標(biāo)簽的文本賦值

        var domh = document.getElementById("myh1");

        domh.innerText = data[i % data.length];//替換已存在,元素值

        i++;

       }

      //調(diào)用匿名函數(shù)

       start();

       var stop = function () {

         //清除定時器

         clearInterval(t1);

         //彈出提示框點(diǎn)到的同學(xué)請作答

         alert("請" + document.getElementById("myh1").innerText+"同學(xué)作答");

       }

    }

</script>

</head>

<body>

  <h1 id="myh1"></h1>

<button id="mybtn"> 開始點(diǎn)名</button>

</body>

</html>

通過上面的幾個案例,我相信大家一點(diǎn)對這兩個函數(shù)應(yīng)該不陌生了。

以上這篇深入理解setTimeout函數(shù)和setInterval函數(shù)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考

更多信息請查看網(wǎng)絡(luò)編程
易賢網(wǎng)手機(jī)網(wǎng)站地址:深入理解setTimeout函數(shù)和setInterval函數(shù)
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!

2025國考·省考課程試聽報名

  • 報班類型
  • 姓名
  • 手機(jī)號
  • 驗(yàn)證碼
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機(jī)站點(diǎn) | 投訴建議
工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網(wǎng)安備53010202001879號 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號
云南網(wǎng)警備案專用圖標(biāo)
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號:hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權(quán)所有:易賢網(wǎng)
云南網(wǎng)警報警專用圖標(biāo)