BOM心得-定時器

来源:https://www.cnblogs.com/missjingjing/archive/2018/03/12/8551015.html
-Advertisement-
Play Games

寫在前面的話:之前一直以為定時器的返回值是Object類型,所以timer初始化也是寫null,今天發現返回值是number,進而發覺這個返回值代表的是定時器的索引,指代這是第幾個定時器 個人覺得只用set/clearInterval方法就好,他可以實現另外的一個方法的所有功能 啟用定時器的方法有兩 ...


寫在前面的話:之前一直以為定時器的返回值是Object類型,所以timer初始化也是寫null,今天發現返回值是number,進而發覺這個返回值代表的是定時器的索引,指代這是第幾個定時器

個人覺得只用set/clearInterval方法就好,他可以實現另外的一個方法的所有功能

啟用定時器的方法有兩種:

一、setInterval(,)

  • 周期性的執行函數體,這個方法如果不主動停止的話,會一直執行
  • 第一個參數是執行的函數體,一般傳入有函數名的函數方法或匿名方法,非常不建議直接傳入函數執行體,代碼可讀性會很差,應該也沒人會這樣做吧
  • 第二個參數是周期時間,單位是毫秒

二、setTimeout(,)

  • 在指定的時間之後執行函數體,如果有輸出,也會不間斷輸出
  • 第一個參數也是要被執行的函數體
  • 第二個參數是指定的延遲時間,單位是毫秒

停止定時器的方法:

一、clearclearInterval()

  • 停止由 setInterval() 方法調用的定時器
  • 提前定義一個變數(一般用timer)接收setInterval(),執行結束後直接把變數傳入 clearInterval()

二、clearTimeout()

  • 使用方法同上
 1 <script>
 2         window.onload = function () {
 3             //需求:點擊關閉,廣告欄消失,用定時器添加漸變效果
 4             var timer = 0;
 5             var ad = document.getElementsByClassName('ad')[0];
 6             var a = ad.children[0].firstElementChild || ad.children[0].firstChild;
 7 
 8             a.onclick = function () {
 9                 //設置定時器
10                 timer = setInterval(function() {
11                     ad.style.opacity -= 0.1;
12                     //透明度為0後,隱藏廣告欄,清除定時器
13                     if (ad.style.opacity <= 0) {
14                         ad.style.display = "none";
15                         clearInterval(timer);
16                     }
17                 },50);
18             }
19 
20 
21             var ad_both = document.body.children;         
22             setTimeout(function() {
23                 ad_both[1].style.display = "none";
24                 ad_both[2].style.display = "none";
25             },5000);
26             clearTimeout(timer);
27         }
28     </script>
29 </head>
30 <body>
31     <div class="top_banner">
32         <div class="nav">導航欄</div>
33         <div class="ad w" style="opacity: 1;">  <!--這裡不懂,不是行內式的時候,有bug-->
34             <div class="close_ad">
35                 <a href="#">×</a>
36             </div>
37         </div>
38         <div class="search w"></div>
39     </div>
40     <div class="ad_l">我將於5秒後自動消失</div>
41     <div class="ad_r">我將於5秒後自動消失</div>
42 </body>

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 簡要:本系列文章講會對expo進行全面的介紹,本人從2017年6月份接觸expo以來,對expo的研究斷斷續續,一路走來將近10個月,廢話不多說,接下來你看到內容,將全部來與官網 我猜去全部機翻+個人修改補充+demo測試的形式,對expo進行一次大補血!歡迎加入expo興趣學習交流群:597732 ...
  • 通過閱讀本文,你會對熱修複技術有更深的認知,本文會列出各類框架的優缺點以及技術原理,文章末尾簡單描述一下Tinker的框架結構。本文框架: 1. 什麼是熱修複? 2. 熱修複框架分類 3. 技術原理及特點 4. Tinker框架解析 5. 各框架對比圖。 ...
  • 同源策略 首先基於安全的原因,瀏覽器是存在同源策略這個機制的,同源策略阻止從一個域載入的腳本去獲取另一個域上的文檔屬性。也就是說,受到請求的 URL 的域必須與當前 Web 頁面的域相同。這意味著瀏覽器隔離來自不同源的內容,以防止它們之間的操作。 js跨域是指通過js在不同的域之間進行數據傳輸或通信 ...
  • Css 層疊樣式表 美化頁面的小工具 分類: 內聯 (行內)在標簽內部以屬性的形式呈現,屬性名style 內嵌 head標簽內以標簽形式呈現,標簽名style 外部 head標簽內 加link標簽 引入外部文件 *.css <link rel="stylesheet" type="text/css" ...
  • 閱讀目錄 介紹 CSS 的基本語法格式 介紹 基礎選擇器 介紹 組合選擇器 介紹 偽選擇器 介紹 其他 一、CSS 的基本語法格式 代碼: 運行結果為: 段落是紅色的。 註意: 上面是一個簡單的演示示例 重點看 <style> 元素 CSS 語法的一般形式是 selector{ property: ...
  • 用戶註冊頁面以及js特效:1、表單聯動;2、正則表達式驗證。 一、html和css代碼(用table進行佈局,div也可以達到一樣的效果) 1 <html> 2 <head> 3 <meta charset="utf-8"> 4 <style> 5 table{ 6 border-collapse: ...
  • 彈窗製作: 優化 css用模板字元串(裡面需要加一個style 標簽)插入的 ${'head'}.append(css) append()插入末尾prepend ()在 p 元素的開頭插入內容 $(".btn1").click(function(){ $("p").prepend("<b>Hello ...
  • 一,js的引入方式 1,script標簽內寫代碼 2,引入額外的js文件 二,js語言規範 1,註釋 2,結束符 JavaScript中的語句要以分號(;)為結束符。 三,js語言基礎 1,變數聲明 註意: 變數名是區分大小寫的。 推薦使用駝峰式命名規則。 保留字不能用做變數名。 四,Js數據類型 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...