日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

查漏補缺,盤點和Toggle相關的幾個API

來源: 責編: 時間:2024-02-29 14:44:28 352觀看
導讀toggle的意思很簡單,表示“切換”,適用于兩個狀態之間的變化,不會出現第三者,就像這樣。web 中也有很多類似的api,一起看看有哪些吧。一、toggle首先是最常用的DOMTokenList.toggle方法,這里的的DOMTokenList表示一組空格分

O3i28資訊網——每日最新資訊28at.com

toggle的意思很簡單,表示“切換”,適用于兩個狀態之間的變化,不會出現第三者,就像這樣。O3i28資訊網——每日最新資訊28at.com

O3i28資訊網——每日最新資訊28at.com

web 中也有很多類似的api,一起看看有哪些吧。O3i28資訊網——每日最新資訊28at.com

一、toggle

首先是最常用的DOMTokenList.toggle方法,這里的的DOMTokenList表示一組空格分隔的標記,最常見的就是Element.classList,比如。O3i28資訊網——每日最新資訊28at.com

除了classList還有relList,不過應該更少見了。O3i28資訊網——每日最新資訊28at.com

<div class="a b c"></div>

通過el.classList可以獲取到 class 的詳細信息。O3i28資訊網——每日最新資訊28at.com

O3i28資訊網——每日最新資訊28at.com

看著像一個數組一樣,然后我們可以通過toggle方法去切換某個class,比如:O3i28資訊網——每日最新資訊28at.com

el.classList.toggle('a'); // 移除 ael.classList.toggle('a'); // 添加 a

此時會動態去判斷,如果存在就移除,如果不存在就添加,再也不需要去判斷當前狀態了。O3i28資訊網——每日最新資訊28at.com

O3i28資訊網——每日最新資訊28at.com

比如要切換頁面主題,可以直接這樣。O3i28資訊網——每日最新資訊28at.com

// 深淺切換btn.onclcik = () => {  document.body.classList.toggle('dark')}// 無需像這樣if (當前是深色) {  設置為淺色} else {  設置為深色}

另外,toggle還支持第二個參數,表示強制,是一個布爾值,為 true表示添加,反之為移除,而「不管當前是什么狀態」。O3i28資訊網——每日最新資訊28at.com

el.classList.toggle('a', force);

比如:O3i28資訊網——每日最新資訊28at.com

// 設置為淺色btnLight.onclcik = () => {  document.body.classList.toggle('dark', false)}// 設置為深色btnDark.onclcik = () => {  document.body.classList.toggle('dark', true)}

是不是非常方便呢?O3i28資訊網——每日最新資訊28at.com

二、toggleAttribute

還有一個和toggle比較類似的是toggleAttribute,顧名思義,這個是用來切換「屬性」的,語法和前面一致。O3i28資訊網——每日最新資訊28at.com

toggleAttribute(name)toggleAttribute(name, force)

這個使用場景更為廣泛,例如控制一個輸入框的禁用與開啟。O3i28資訊網——每日最新資訊28at.com

input.toggleAttribute('disabled')

當然對于表單元素,還可以用.的方式直接設置。O3i28資訊網——每日最新資訊28at.com

input.disabled = !input.disabled;

但是,對于普通自定義屬性,就不能用這種方式了,比如黑暗模式,用屬性來控制。O3i28資訊網——每日最新資訊28at.com

document.body.toggleAttribute('dark');

第二個參數也是類似的。O3i28資訊網——每日最新資訊28at.com

document.body.toggleAttribute('dark', ture); //添加dark屬性document.body.toggleAttribute('dark', false);//移除dark屬性

當然你還可以用更常規的方式。O3i28資訊網——每日最新資訊28at.com

document.body.setAttribute('dark', ''); //添加dark屬性document.body.removeAttribute('dark');//移除dark屬性

個人覺得不如toggleAttribute優雅,你覺得呢?O3i28資訊網——每日最新資訊28at.com

三、togglePopover

togglePopover是新出來的,是針對popover元素推出的打開與關閉的方法。O3i28資訊網——每日最新資訊28at.com

關于popover,可以參考我之前寫的這篇文章:原生 popover 終于來了!O3i28資訊網——每日最新資訊28at.com

語法略有差異,因為無需修改其他狀態,所以只有一個可選參數。O3i28資訊網——每日最新資訊28at.com

popoverEl.togglePopover(); //切換 popoverpopoverEl.togglePopover(true); //打開 popoverpopoverEl.togglePopover(false); //關閉 popover

另外,帶有的參數的情況下還有更直觀的 api,推薦使用。O3i28資訊網——每日最新資訊28at.com

// 打開popoverEl.togglePopover(true)// 等同于popoverEl.showPopover()// 關閉popoverEl.togglePopover(false)// 等同于popoverEl.hidePopover()

比較新,是跟著popver一起出現的,兼容性如下:O3i28資訊網——每日最新資訊28at.com

O3i28資訊網——每日最新資訊28at.com

四、toggle event

最后再來介紹一個toggle事件,表示監聽切換事件。O3i28資訊網——每日最新資訊28at.com

這個也是跟隨poperver推出的,可以通過event對象獲取當前的新狀態和舊狀態,如下:O3i28資訊網——每日最新資訊28at.com

popover.addEventListener("toggle", (event) => {  if (event.newState === "open") {    console.log("Popover has been shown");  } else {    console.log("Popover has been hidden");  }});

效果如下:O3i28資訊網——每日最新資訊28at.com

O3i28資訊網——每日最新資訊28at.com

有意思的是,這個事件同時也支持details元素。O3i28資訊網——每日最新資訊28at.com

details.addEventListener("toggle", (event) => {  });

O3i28資訊網——每日最新資訊28at.com

五、總結一下

以上就是 web 中幾個和toggle相關的api了,下面總結一下:O3i28資訊網——每日最新資訊28at.com

  • toggle作用在DOMTokenList上,通常是classList , classList.toggle可以切換class。
  • toggle還支持第二個參數,用于強制添加或者移出某個class。
  • toggleAttribute可以控制屬性的切換。
  • togglePopver是專門推出用于控制popover元素打開和關閉的方法。
  • toggle event可以監聽popover元素和details元素的打開和關閉事件。

本文鏈接:http://www.www897cc.com/showinfo-26-75383-0.html查漏補缺,盤點和Toggle相關的幾個API

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 基于C#編寫一個遠程桌面應用

下一篇: 只用 13 天,OpenAI 做出了能聽、能說、能自主決策的機器人大模型

標簽:
  • 熱門焦點
  • 小米官宣:2023年上半年出貨量中國第一!

    今日早間,小米電視官方微博帶來消息,稱2023年小米電視上半年出貨量達到了中國第一,同時還表示小米電視的巨屏風暴即將開始。“公布一個好消息2023年#小米電視上半年出貨量中國
  • Rust中的高吞吐量流處理

    作者 | Noz編譯 | 王瑞平本篇文章主要介紹了Rust中流處理的概念、方法和優化。作者不僅介紹了流處理的基本概念以及Rust中常用的流處理庫,還使用這些庫實現了一個流處理程序
  • 使用AIGC工具提升安全工作效率

    在日常工作中,安全人員可能會涉及各種各樣的安全任務,包括但不限于:開發某些安全工具的插件,滿足自己特定的安全需求;自定義github搜索工具,快速查找所需的安全資料、漏洞poc、exp
  • 10天營收超1億美元,《星鐵》比《原神》差在哪?

    來源:伯虎財經作者:陳平安即便你沒玩過《原神》,你一定聽說過的它的大名。恨它的人把《原神》開服那天稱作是中國游戲史上最黑暗的一天,有粉絲因為索尼在PS平臺上線《原神》,怒而
  • 騰訊VS網易,最卷游戲暑期檔,誰能笑到最后?

    作者:無銹缽來源:財經無忌7月16日晚,上海1862時尚藝術中心。伴隨著幻象的精準命中,碩大的熒幕之上,比分被定格在了14:12,被寄予厚望的EDG戰隊以絕對的優勢戰勝了BLG戰隊,拿下了總決
  • 猿輔導與新東方的兩種“歸途”

    作者|卓心月 出品|零態LT(ID:LingTai_LT)如何成為一家偉大企業?答案一定是對&ldquo;勢&rdquo;的把握,這其中最關鍵的當屬對企業戰略的制定,且能夠站在未來看現在,即使這其中的
  • 華為和江淮汽車合作開發百萬元問界MPV?雙方回應來了

    8月1日消息,郭明錤今天在社交平臺發文稱,華為正在和江淮汽車合作,開發售價在100萬元的問界MPV,預計在2024年第2季度量產,銷量目標為上市首年交付5萬輛。
  • 華為開發者大會2023日程公開:開設鴻蒙HarmonyOS 4體驗區

    IT之家 7 月 31 日消息,華為今日公布了 HDC.Together 開發者大會 2023 的詳細日程。整場大會將于 8 月 4 日-6 日之間舉行,屆時將發布最新一代鴻蒙 H
  • 三星顯示已開始為AR設備研發硅基LED微顯示屏

    7月18日消息,據外媒報道,隨著蘋果首款頭顯產品Vision Pro在6月份正式推出,AR/VR/MR等頭顯產品也就將成為各大公司下一個重要的競爭領域,對顯示屏這一關
Top 主站蜘蛛池模板: 苗栗县| 宁都县| 绥德县| 通化县| 吴忠市| 大名县| 西贡区| 遵义县| 九龙县| 海门市| 和林格尔县| 万州区| 上杭县| 镇坪县| 平阳县| 沾益县| 鸡西市| 阳新县| 八宿县| 渭南市| 淳安县| 古丈县| 甘泉县| 托里县| 平泉县| 迁安市| 彰化县| 通道| 双牌县| 周至县| 漾濞| 麻江县| 远安县| 海门市| 商洛市| 开原市| 南涧| 建宁县| 塔城市| 巴东县| 清苑县|