91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何使用CSS時間打點的Loading效果

發布時間:2022-01-20 09:51:22 來源:億速云 閱讀:128 作者:iii 欄目:web開發

這篇“如何使用CSS時間打點的Loading效果”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“如何使用CSS時間打點的Loading效果”文章吧。

1. 漸進兼容
支持CSS3 animation動畫的瀏覽器顯示的就是打點動畫效果;對于不支持的瀏覽器,IE7/IE8顯示的是真實的字符..., IE9瀏覽器雖然也是CSS3生成,但是是靜態的,沒有動畫效果;此乃漸進兼容。

2. 實現原理
首先HTML非常簡單,就是一個標簽一個類名(標簽里面一定要空空如也),其他什么都不需要關心,就可以游刃幾乎各種場景,如下:

XML/HTML Code復制內容到剪貼板

  1. 訂單提交中<span class="dotting"></span>  

上面代碼這個類名為dotting的span就是我們所有的玄機所在,頁面任意地方,只要有這一小撮HTML就可以有打點動畫,與文字混排良好,且顏色自動匹配。例如,本文“標題一”和“標題二”后面的點點點動畫就是添加了這么點HTML.

下面是萬眾矚目的CSS代碼了:

CSS Code復制內容到剪貼板

  1. .dotting {   

  2.     displayinline-blockmin-width2pxmin-height2px;   

  3.     box-shadow: 2px 0 currentColor, 6px 0 currentColor, 10px 0 currentColor; /* for IE9+, ..., 3個點 */  

  4.     animation: dot 4s infinite step-start both/* for IE10+, ... */  

  5.     *zoom: expression(this.innerHTML = '...'); /*  for IE7. 若無需兼容IE7, 此行刪除 */  

  6. }   

  7. .dotting:before { content'...'; } /* for IE8. 若無需兼容IE8, 此行以及下一行刪除*/  

  8. .dotting::before { content''; } /* for IE9+ 覆蓋 IE8 */  

  9. :root .dotting { margin-right8px; } /* for IE9+,FF,CH,OP,SF 占據空間*/  

  10.   

  11. @keyframes dot {   

  12.     25% { box-shadow: none; }                                  /* 0個點 */  

  13.     50% { box-shadow: 2px 0 currentColor; }                    /* 1個點 */  

  14.     75% { box-shadow: 2px 0 currentColor, 6px 0 currentColor;  /* 2個點 */ }   

  15. }  

上面每行CSS都有其存在的道理(詳見注釋),這里我們又看到了currentColor這個關鍵字,IE9+瀏覽器支持,其可以讓CSS生成的圖形的顏色跟所處環境的color屬性值一樣,也就是跟文字顏色一樣,具體可參考我不久前寫的“currentColor-CSS3超高校級好用CSS關鍵字”一文。

我們動畫一個周期4秒鐘,每秒分別顯示的是0~3個點,使用step-start讓動畫不連續(animation所有關鍵字“CSS3 animation漸進實現點點點等待提示效果”這篇文章后面深藏詳細介紹,如有疑問,可參考),于是就有個類似gif打點動畫效果,相信不難理解。

3. 美中不足
雖然幾乎所有瀏覽器都有模有樣,但是,從效果上講,還是有瑕疵的,IE10+以及FireFox瀏覽器下的點的邊緣有些虛(參見下截圖),雖然CSS代碼并沒有設置盒陰影模糊。這種羽化現象可以讓IE以及FireFox在大數值盒陰影時候效果更接近photoshop的陰影效果;但是,在小尺寸陰影時候,并不是我們想要的。

苛刻的設計師、完美主義的處女座顯然是不能對這個置若罔聞的。好在,我又想了另外一種方法實現

基于border + background實現的打點效果

我們除了可以使用box-shadow生成三個點,還可以使用border + background-color實現等寬3點效果(如本標題)。

您可以狠狠地點擊這里:animation border+background漸進實現打點動畫demo

1. 漸進兼容
IE9以及IE10+以及FireFox的點再也不是模糊的,而是清清楚楚的小方點!

2. 實現原理
HTML還是那個HTML:

XML/HTML Code復制內容到剪貼板

  1. 訂單提交中<span class="dotting"></span>  

CSS代碼如下:

CSS Code復制內容到剪貼板

  1. .dotting {   

  2.     displayinline-blockwidth10pxmin-height2px;   

  3.     padding-right2px;   

  4.     border-left2px solid currentColor; border-right2px solid currentColor;      

  5.     background-color: currentColor; background-clipcontent-box;   

  6.     box-sizing: border-box;   

  7.     animation: dot 4s infinite step-start both;   

  8.     *zoom: expression(this.innerHTML = '...'); /* IE7 */  

  9. }   

  10. .dotting:before { content'...'; } /* IE8 */  

  11. .dotting::before { content''; }   

  12. :root .dotting { margin-left2pxpadding-left2px; } /* IE9+ */  

  13.   

  14. @keyframes dot {   

  15.     25% { border-colortransparentbackground-colortransparent; }          /* 0個點 */  

  16.     50% { border-right-colortransparentbackground-colortransparent; }    /* 1個點 */  

  17.     75% { border-right-colortransparent; }                                   /* 2個點 */  

  18. }  

一些說明:

  •     同樣是4秒動畫,每秒鐘顯示1個點;
        IE7/IE8實現原理跟上面box-shadow方法一致,都是內容生成,如果無需兼容IE7/IE8, 可以按照第一個例子CSS代碼注釋說明刪除一些CSS;
        currentColor關鍵字可以讓圖形字符化,必不可少;
        最大功臣是CSS3 background-clip屬性,可以讓IE9+瀏覽器下左右padding沒有背景色,于是形成了等分打點效果。CSS3 Background博大精深,有興趣可參考一篇很贊的文章“CSS3 Backgrounds相關介紹”,很多圖,移動端非wifi慎點;
        box-sizing是讓現代瀏覽器和IE7/IE8占據寬度完全一樣的功臣:IE7/IE8實際寬度是width+padding-right為12像素,其他現代瀏覽器為width+margin-left也是12像素;
        這里CSS代碼主要用來展示原理,故沒有顯示-webkit-animation以及@-webkit-keyframes私有前綴,實際目前還是需要的;

3. 優勢所在

  •     CSS生成的點沒有虛化,效果更好;
        占據的尺寸各個瀏覽器完全一致,都是12像素寬度;
        顏色繼承;
        天然字符化顯示,與文字渾然天成;

以上就是關于“如何使用CSS時間打點的Loading效果”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

封开县| 桂林市| 日土县| 余姚市| 正宁县| 松潘县| 陆良县| 湟中县| 固原市| 睢宁县| 绥宁县| 广饶县| 金塔县| 陆河县| 乐至县| 通渭县| 玛沁县| 阳江市| 德化县| 香格里拉县| 宜兰市| 靖西县| 锦州市| 墨竹工卡县| 清水河县| 海原县| 临夏县| 菏泽市| 旌德县| 平邑县| 黔西县| 昌江| 安顺市| 鄄城县| 田东县| 喜德县| 阳西县| 宜昌市| 焦作市| 松溪县| 正定县|