頁面loading效果實現(xiàn)思路

我們國家的人數(shù)眾多,導致的結果就是不管去干啥都要排隊,都要等待。當然這是理想狀態(tài),現(xiàn)實中的情況卻是大家一擁而上,根本不管什么排隊不排隊的。就算勉強排成了隊形,也總是有些人插隊,插隊不是某一類人,而是全員,從年邁的老人到高素質的大學生,從公司白領到抱孩子的女人。總之,插隊已經成為全全民參與的一項運動。當我遇見這種情況的時候,總是會無奈的嘆口氣,然后悄然的跟著插隊的人站在他的后面,從容不迫的完成我的“插隊”之舉。

在面臨排隊的時候,那可真是眾生相十足啊,有人看書,有人看手機,有人和旁邊的人閑聊,有人打電話,有人看天空,有人雙眼盯著那些插隊的人嘴里罵罵咧咧。都是無聊鬧的……那么我們在頁面中也會出現(xiàn)類似的忙碌情況,當有大量圖片加載或者網(wǎng)速沒有足夠快。訪問者望著一片白的瀏覽器,估計沒有人能堅持幾秒鐘直接就關閉了。這種情況不是我們網(wǎng)頁制作者愿意見到的。可是我們管不了分配帶寬,也管不了網(wǎng)站編輯。怎么辦?

我們能做的就是通過自己已經掌握的知識來為遇見的新問題來提供解決方案。添加一個loading效果的圖標是一個很好的解決方案,在CSS3之前都會用到一張小小的GIF來實現(xiàn)loading的效果。

而在CSS3出現(xiàn)了transform:rotate();之后我們就可以用一張體積較小的JPG圖片來代替體積較大的GIF圖片,甚至圖形也直接用CSS來生成,例如用《border一點都不簡單》一文中的border來生成三角形;也可以用CSS中十分生僻的屬性Clip-Path:polygon();來做更復雜的圖形。

先來看看瀏覽器對transform:rotate();的支持情況。

瀏覽器對CSS屬性transform的支持情況

瀏覽器對CSS屬性transform的支持情況

還不錯~圖上有黃色小點的地方就是說需要加私有前綴。主流瀏覽器的主要版本都支持這哥們,IE8及之前版本的IE不支持,IE9需要添加-ms-私有前綴。不過IE9只能支持transform的2D轉換,對于3D轉換-ms-transform:rotate3d();會完全無感。

transform:rotate();的括號里面要填寫的是需要旋轉的度數(shù)。例如90deg表述的就是90°。有了旋轉了,還必須配合CSS中高級裝逼利器animation@keyframes來創(chuàng)建動畫。關于它們的用法,后續(xù)的文章介紹基礎CSS的時候,我會詳細說明,這里只是說它的作用是做動畫的。看示例DEMO就會對這兩貨有一定的感性了解。

那畫面太美我不敢看

很有意思是吧!animation控制圖形元素進行transform:rotate();就能實現(xiàn)loading效果。這是基本技術原理。用CSS制作簡單的圖形有幾種方法,除前文舉例的border制作三角形之外還有用Clip-Path:polygon();制作較為復雜的多邊形,不過這哥們太生僻了而且對瀏覽器支持不廣泛。這里我決定用box-shadow屬性和border-radius屬性來制作由小圈圈組成的圓環(huán)。

是時候展現(xiàn)真正的技術了

通過border-radius來設置一個圓形,然后通過box-shadow的多重陰影來設置“環(huán)”上的其他點:

/*border-radius和box-shadow生成圓環(huán)*/
div {
    margin: 50px auto;
    width: 4px;
    height: 4px;
    border-radius: 2px;
    box-shadow: 0 -12px 0 3px #000,
                0 12px 1px 1px #333,
                -12px 0 2px 1px #333,
                12px 0 0 1px #333,
                -9px -9px 3px 1px #333,
                9px -9px 0 2px #333,
                -9px 9px 1px 1px #333,
                9px 9px 0 1px #333;
}

想讓我們的小“圓環(huán)”動起來的話,只需要給這個<div>的CSS樣式添加animation的聲明即可。不過在這之前我們需要用@keyframes來設置我們的圖形的旋轉效果。

/*@keyframes設置*/
/*為了保證兼容性,清設置私有制前綴,總有些人懶得升級自己的瀏覽器。*/
@-moz-keyframes gif-loading {
    from{transform: rotate(360deg);}
    to{transform: rotate(0deg);}
}
@-o-keyframes gif-loading {
    from{transform: rotate(360deg);}
    to{transform: rotate(0deg);}
}
@-webkit-keyframes gif-loading {
    from{transform: rotate(360deg);}
    to{transform: rotate(0deg);}
}
@keyframes gif-loading{
    from{transform: rotate(360deg);}
    to{transform: rotate(0deg);}
}
/*為了保證兼容性,清設置私有制前綴,總有些人懶得升級自己的瀏覽器。*/

設置完@keyframes之后,我們就要用animation屬性把我們的@keyframes動畫效果應用到我們的”圓環(huán)”上面了。這一步比較簡單,代碼如下:

/*animation應用效果*/
/*為了保證兼容性,清設置私有制前綴,總有些人懶得升級自己的瀏覽器。*/
div {
    margin: 50px auto;
    width: 4px;
    height: 4px;
    border-radius: 2px;
    box-shadow: 0 -12px 0 3px #000,
                0 12px 1px 1px #333,
                -12px 0 2px 1px #333,
                12px 0 0 1px #333,
                -9px -9px 3px 1px #333,
                9px -9px 0 2px #333,
                -9px 9px 1px 1px #333,
                9px 9px 0 1px #333;  
    -webkit-animation: gif-loading 2s linear 0s infinite;
    -moz-animation: gif-loading 2s linear 0s infinite;
    -o-animation: gif-loading 2s linear 0s infinite;
    animation: gif-loading 2s linear 0s infinite;
}
/*為了保證兼容性,清設置私有制前綴,總有些人懶得升級自己的瀏覽器。*/

這下我們就得到了一個純CSS制作的loading效果了……↓↓↓↓↓↓


loading

OK!大功告成~~ 奇怪怎么看起來這個圓環(huán)有點“方形”的感覺?算了……不管它了,就這吧…


簽名
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,763評論 6 539
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,238評論 3 428
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 177,823評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,604評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,339評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,713評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,712評論 3 445
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,893評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 49,448評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,201評論 3 357
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,397評論 1 372
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,944評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 44,631評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,033評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,321評論 1 293
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,128評論 3 398
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,347評論 2 377

推薦閱讀更多精彩內容

  • 各種純css圖標 CSS3可以實現(xiàn)很多漂亮的圖形,我收集了32種圖形,在下面列出。直接用CSS3畫出這些圖形,要比...
    劍殘閱讀 9,628評論 0 8
  • 寫在前面:這是一篇菜鳥的學習筆記,記錄效果實現(xiàn)過程,而沒有考慮安全、兼容、性等問題。供新手參考,也希望前輩們指點。...
    im宇閱讀 3,494評論 0 4
  • 2017年9月6日,星期三。早上七點,從家里出發(fā),步行半小時到學校。按步當車,低碳環(huán)保,也是健康所需,更是避開公汽...
    小荷文學魏以進閱讀 12,377評論 0 6
  • 第一眼看到的是惡魔的雙眼瞪大,神情奇特。 惡魔伸出手打招呼,而另一只手卻拿著火把準備點燃男人的尾巴,表面是好意,暗...
    易辰閱讀 368評論 0 1