探秘冷門的HTML5原生組件:Dialog

前言

很多做前端開發(fā)的朋友偶爾會跟我抱怨:前端技術可謂日新月異轮蜕,平時需要花大量的時間去學習更新知識庫,也難以保證不會落伍收壕。追求最新的前端開發(fā)技術妓灌,就好像追“芝諾的烏龜”一樣,無論多努力蜜宪,我們永遠是落后的一方虫埂。

是的,我也不得不承認前端技術大神制輪子的速度永遠領先于我們端壳。那又何妨告丢,難倒沒有最新的技術加持枪蘑,我們以前開發(fā)的系統(tǒng)就會崩塌嗎损谦?事實上,這種情況并不會發(fā)生岳颇,反而盲目追求新技術對系統(tǒng)造成的不確定性才是最致命的照捡。

我認為,原生的低級的技術才是最穩(wěn)定话侧,最可靠的栗精。所以,今天我們暫且拋卻所有新生代技術瞻鹏,回歸原生HTML5悲立,探究一下還有什么冷知識,是我們之前不曾涉足的新博。比如薪夕,我們下面即將開始研究的這個組件。

模態(tài)對話框組件

假設您的項目有個需求赫悄,寫一個模態(tài)對話框原献,首先你會想到用什么技術來實現馏慨?

  • 用JQuery的插件?用Css自己做一個浮動Div層姑隅?

其實写隶,以上的都不需要。因為原生的HTML其實是自帶Dialog組件的讲仰。而且它還是在Top Layer上渲染的慕趴,這意味著我們不需要設置z-index屬性,就能保證對話框在最頂層鄙陡。

代碼如下:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Dialog Example</title>
<style>
  dialog {
    width: 500px;
    padding: 10px;
    border: solid 1px #000;
    border-radius: 10px;
    background-color: #fff;
  }
</style>
</head>
<body>
  <button id="open-btn">Open Dialog</button>
  <p id="message"></p>
  <dialog id="my-dialog">
      <h3>This is a Model Dialog.</h3>
      <button id="confirm-btn">Confirm</button>
      <button id="cancel-btn">Cancel</button>
  </dialog>
</body>
</html>
<script>
  const dialog = document.getElementById('my-dialog');
  const message = document.getElementById('message');
  document.getElementById('open-btn').onclick = function() {
      dialog.showModal(); 
  };

  dialog.addEventListener('close',function(e){
    console.log(e);
  });

  dialog.querySelector("#confirm-btn").onclick = function(){
    dialog.close();
    message.innerText = "Confirm Button is Clicked."
  }

  dialog.querySelector("#cancel-btn").onclick = function(){
    dialog.close();
    message.innerText = "Close Button is Clicked."
  }
</script>

運行效果

dialog效果

點一下按鈕秩贰,一個簡單質樸的模態(tài)對話窗馬上就出現在我們眼前。如果想美化一下柔吼,拿CSS往上堆就好了毒费。我就懶得弄啦~

如果還想了解更多,請參考官方文檔:

https://developer.mozilla.org/en-US/docs/Web/HTML/Element/dialog

總結

  • 原生HTML庫中愈魏,有很多現成的非常好用組件觅玻,是被我們前端開發(fā)所忽略的;
  • 原生組件使用起來非常簡潔方便;
  • 強烈推薦給跟我一樣有代碼潔癖的朋友培漏,盡量避開框架擁抱原生溪厘。
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市牌柄,隨后出現的幾起案子畸悬,更是在濱河造成了極大的恐慌,老刑警劉巖珊佣,帶你破解...
    沈念sama閱讀 212,816評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蹋宦,死亡現場離奇詭異,居然都是意外死亡咒锻,警方通過查閱死者的電腦和手機冷冗,發(fā)現死者居然都...
    沈念sama閱讀 90,729評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來惑艇,“玉大人蒿辙,你說我怎么就攤上這事”醢停” “怎么了思灌?”我有些...
    開封第一講書人閱讀 158,300評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長恭取。 經常有香客問我泰偿,道長,這世上最難降的妖魔是什么秽荤? 我笑而不...
    開封第一講書人閱讀 56,780評論 1 285
  • 正文 為了忘掉前任甜奄,我火速辦了婚禮柠横,結果婚禮上,老公的妹妹穿的比我還像新娘课兄。我一直安慰自己牍氛,他們只是感情好紫皇,可當我...
    茶點故事閱讀 65,890評論 6 385
  • 文/花漫 我一把揭開白布睦刃。 她就那樣靜靜地躺著,像睡著了一般隙姿。 火紅的嫁衣襯著肌膚如雪蜒茄。 梳的紋絲不亂的頭發(fā)上唉擂,一...
    開封第一講書人閱讀 50,084評論 1 291
  • 那天,我揣著相機與錄音檀葛,去河邊找鬼玩祟。 笑死,一個胖子當著我的面吹牛屿聋,可吹牛的內容都是我干的空扎。 我是一名探鬼主播,決...
    沈念sama閱讀 39,151評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼润讥,長吁一口氣:“原來是場噩夢啊……” “哼转锈!你這毒婦竟也來了?” 一聲冷哼從身側響起楚殿,我...
    開封第一講書人閱讀 37,912評論 0 268
  • 序言:老撾萬榮一對情侶失蹤撮慨,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后脆粥,有當地人在樹林里發(fā)現了一具尸體砌溺,經...
    沈念sama閱讀 44,355評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,666評論 2 327
  • 正文 我和宋清朗相戀三年冠绢,在試婚紗的時候發(fā)現自己被綠了抚吠。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,809評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡弟胀,死狀恐怖,靈堂內的尸體忽然破棺而出喊式,到底是詐尸還是另有隱情孵户,我是刑警寧澤,帶...
    沈念sama閱讀 34,504評論 4 334
  • 正文 年R本政府宣布岔留,位于F島的核電站夏哭,受9級特大地震影響,放射性物質發(fā)生泄漏献联。R本人自食惡果不足惜竖配,卻給世界環(huán)境...
    茶點故事閱讀 40,150評論 3 317
  • 文/蒙蒙 一何址、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧进胯,春花似錦用爪、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至盯漂,卻和暖如春颇玷,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背就缆。 一陣腳步聲響...
    開封第一講書人閱讀 32,121評論 1 267
  • 我被黑心中介騙來泰國打工帖渠, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人竭宰。 一個月前我還...
    沈念sama閱讀 46,628評論 2 362
  • 正文 我出身青樓阿弃,卻偏偏與公主長得像,于是被迫代替她去往敵國和親羞延。 傳聞我的和親對象是個殘疾皇子渣淳,可洞房花燭夜當晚...
    茶點故事閱讀 43,724評論 2 351

推薦閱讀更多精彩內容

  • DTD 介紹 DTD(Document Type Definition 文檔類型定義)是一組機器可讀的規(guī)則,它們定...
    lio_zero閱讀 2,594評論 0 9
  • 確定API 要確保你的API和同行的API沒有太大不同伴箩,否則用戶學習成本變高入愧,不利于我們的UI使用;所以我們就可以...
    darkTi閱讀 318評論 0 0
  • W3C https://zh.wikipedia.org/zh-hant/%E4%B8%87%E7%BB%B4%E...
    金冥滅閱讀 340評論 0 0
  • 具名插槽 子組件使用 聲明具名插槽嗤谚,在使用組件時在組件標簽內通過 v-slot:xxx來匹配響應插槽棺蛛。 Tele...
    kuangdangLi閱讀 30評論 0 0
  • 讀完此文你將系統(tǒng)了解原生web組件組成以及它們之間的相互作用,并且對日常開發(fā)中遇到的問題會有更深層次的理解巩步。 We...
    xurna閱讀 696評論 0 0