整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          前端開發:必備的5個JavaScript函數

          前端開發:必備的5個JavaScript函數

          、防止高頻調用的debounce函數

          這個debounce函數對于那些執行事件驅動的任務來說是必不可少的提高性能的函數。如果你在使用scroll,resize,key*等事件觸發執行任務時不使用降頻函數,也行你就犯了重大的錯誤。下面這個降頻函數debounce能讓你的代碼變的高效:

          這個debounce函數在給定的時間間隔內只允許你提供的回調函數執行一次,以此降低它的執行頻率。當遇到高頻觸發的事件時,這樣的限制顯得尤為重要。

          二、禁止重復調用、只允許執行一次的once函數

          很多時候,我們只希望某種動作只能執行一次,就像是我們使用onload來限定只在加載完成時執行一次。下面這個函數就能讓你的操作執行一次后就不會再重復執行。

          這個once函數能夠保證你提供的函數只執行唯一的一次,防止重復執行。

          三、獲取一個鏈接的絕對地址getAbsoluteUrl

          獲取鏈接的絕對地址并不像你想象的那么簡單。下面就是一個非常實用的函數,能根據你輸入的相對地址,獲取絕對地址:

          這里使用了a標簽href來生成完整的絕對URL,十分的可靠。

          四、用JavaScript創建新的CSS規則insertRule

          有時候我們會使用一個CSS選擇器(比如document.querySelectorAll)來獲取一個 NodeList ,然后給它們每個依次修改樣式。其實這并不是一種高效的做法,高效的做法是用JavaScript新建一段CSS樣式規則:

          這些做法的效率非常高,在一些場景中,比如使用ajax新加載一段html時,使用上面這個方法,你不需要操作新加載的html內容。

          五、設定時間/頻率循環檢測函數

          debounce函數是借助于某個事件的觸發。但有時候并沒有這樣的事件可用,那我們只能自己寫一個函數來每隔一段時間檢查一次。

          切圖 qietu(.com)

          十幾個函數,對于前端的開發的同學來說,非常實用,比如,如何生成一個唯一的字符串ID,如何轉義HTML特殊字符。而對于想提升JS基礎能力及面試能力的同學來講,也非常有用,每一個功能考的都是你的基本功扎不扎實的問題。能學東西

          如何生成隨機數?

          我們可以使用Math.random方法來生成 一個隨機字符中,比如,當我們需要生成一個唯一字符串ID的時候,這就非常適合。

          代碼如下:

          CSS 包含了許多函數,而且它能夠完成許多早期需要用 JavaScript才能完成的事情。每年都有新的特性被添加進來,這讓我們的開發更加輕松,也減少了對JavaScript的依賴。CSS 函數是它所具有的最強大的特性之一,在本文中,我將介紹一些我認為有用的函數。

          attr()

          attr 函數用于獲取所選元素的屬性值。它接受三個參數,屬性名稱,類型和默認值。

          語法: attr( attribute-name? [,]? )

          事例:

          <p data-text="the attr function"
            data-tooltip="Hi from attr!" class="attr">This text is combined with
           </p>

          css

          p::after {
            content: ' ' attr(data-text);
          }
          
          p.attr:hover::after {
            content: ' ' attr(data-tooltip);
            background-color: orange;
            color: white
          }

          效果:

          源碼:https://codepen.io/protic_milos/pen/GRpYJKd

          calc()

          這個函數使我們能夠計算CSS值,而不是指定確切的值。通常用于計算元素的大小或位置。它支持加法、減法、乘法和除法。

          需要特別注意重要一點是+和-運算符必須用空格隔開,不然無法正常工作。*和/運算符不有這限制,但出于一致性的考慮,建議添加空格。

          另外,很棒的是,我們可以混合CSS單位,例如,我們可以減去百分比和像素。

          我們可以用calc構建一個帶有居中元素的示例:

          <p class="calc">Centered with calc</p>

          css

          p.calc {
            padding: 10px;
            background-color: orange;
            color: white;
            width: 200px;
            text-align:center;
            margin-left: calc(50% - 100px)
          }

          效果:

          源碼:https://codepen.io/protic_milos/pen/GRpYJKd

          var()

          通過這個函數,我們可以使用一個自定義屬性的值作為另一個CSS屬性的值。簡單地說,我們可以定義一個顏色,例如,將它放在自定義屬性(CSS變量)中,然后通過調用var函數重用該屬性值。

          與CSS變量一起,該函數提高了可維護性并減少了重復。一個用例是為網站創建主題。

          此函數接受兩個參數,即自定義屬性和一個默認值,如果出現問題,將使用它們。

          :root {
            --bg-color: green;
            --color: white
          }
          
          p.var {
            background-color: var(--bg-color);
            color: var(--color)
          }

          效果:

          源碼:https://codepen.io/protic_milos/pen/GRpYJKd

          counter()

          就我個人而言,我從未使用過這種方法,但它看起來是很有趣。這個函數返回指定計數器的當前值,需要與 counter-reset和counter-increment 配合使用。

          我們可以用它來計算其他元素,比如有序列表。

          <div class="counter">
            <span>Mars</span>
            <span>Bounty</span>
            <span>Snickers</span>
          </div>

          源碼:https://codepen.io/protic_milos/pen/GRpYJKd

          circle()

          這個函數創建一個圓形區域來屏蔽它所應用的元素。你可以指定它的半徑和位置。通常與圖像一起使用來創建圓角形狀。此函數是clip-path屬性值。

          另外,值得一提的是,除了圓之外,您還可以創建橢圓和多邊形形狀。

          <img class="circle" 
            src="https://devinduct.com/Uploads/PostImages/1122dcb9-954a-4641-9ca6-c38e9472698f.png"
          />

          css

          img.circle {
            clip-path: circle(30%);
          }

          源碼:https://codepen.io/protic_milos/pen/GRpYJKd

          總結

          正如我之前多次提到的,在很多情況下,開發人員都忽視了CSS的可能性,因此失去了web站點的簡單性。每一年我們都可以依靠CSS為我們提供所需的設計能力,這很好,JavaScript 應該把注意力放在其他事情上,而不是設計上。


          作者:Milos Protic 譯者:前端小智 來源:devinduct

          原文:https://devinduct.com/63/5-useful-css-functions


          主站蜘蛛池模板: 老熟女五十路乱子交尾中出一区| 综合无码一区二区三区| 亚洲日韩中文字幕一区| 女人和拘做受全程看视频日本综合a一区二区视频 | 中文字幕一区二区三区乱码| 亚洲中文字幕久久久一区| 亚洲电影一区二区| 91国在线啪精品一区| 久久久久人妻一区精品性色av| 岛国无码av不卡一区二区| 成人日韩熟女高清视频一区| 风流老熟女一区二区三区| 亚洲av无码一区二区三区观看 | 中文字幕在线无码一区二区三区 | 视频在线观看一区| 无码日韩精品一区二区人妻 | 中文字幕精品亚洲无线码一区应用| 亚洲乱色熟女一区二区三区蜜臀 | 日本在线观看一区二区三区| 中文字幕日韩一区二区三区不| 国产一区二区三区久久精品| 中文字幕精品一区二区2021年| 无码国产精品一区二区免费模式| 国产成人一区二区精品非洲| 国产一区二区三区亚洲综合| 国产区精品一区二区不卡中文| 一区二区三区高清| 亚洲国产精品一区二区第一页 | 国产福利一区二区三区在线视频| 亚洲av无一区二区三区| 国产视频一区在线观看| 国产裸体舞一区二区三区| 中文精品一区二区三区四区| 日韩精品人妻一区二区中文八零| 国产主播一区二区三区在线观看| 韩国福利影视一区二区三区| 成人精品视频一区二区| 亚洲天堂一区在线| 精品人妻AV一区二区三区 | 区三区激情福利综合中文字幕在线一区亚洲视频1 | 在线精品亚洲一区二区小说|