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

我們國家的人數(shù)眾多横侦,導(dǎo)致的結(jié)果就是不管去干啥都要排隊挥萌,都要等待。當(dāng)然這是理想狀態(tài)枉侧,現(xiàn)實中的情況卻是大家一擁而上引瀑,根本不管什么排隊不排隊的。就算勉強排成了隊形榨馁,也總是有些人插隊憨栽,插隊不是某一類人,而是全員翼虫,從年邁的老人到高素質(zhì)的大學(xué)生屑柔,從公司白領(lǐng)到抱孩子的女人≌浣#總之锯蛀,插隊已經(jīng)成為全全民參與的一項運動。當(dāng)我遇見這種情況的時候次慢,總是會無奈的嘆口氣旁涤,然后悄然的跟著插隊的人站在他的后面,從容不迫的完成我的“插隊”之舉迫像。

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

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

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

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

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

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

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

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

那畫面太美我不敢看

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

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

通過border-radius來設(shè)置一個圓形,然后通過box-shadow的多重陰影來設(shè)置“環(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來設(shè)置我們的圖形的旋轉(zhuǎn)效果。

/*@keyframes設(shè)置*/
/*為了保證兼容性劲赠,清設(shè)置私有制前綴涛目,總有些人懶得升級自己的瀏覽器。*/
@-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);}
}
/*為了保證兼容性凛澎,清設(shè)置私有制前綴,總有些人懶得升級自己的瀏覽器估蹄。*/

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

/*animation應(yīng)用效果*/
/*為了保證兼容性最铁,清設(shè)置私有制前綴讯赏,總有些人懶得升級自己的瀏覽器。*/
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;
}
/*為了保證兼容性冷尉,清設(shè)置私有制前綴漱挎,總有些人懶得升級自己的瀏覽器。*/

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


loading

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


簽名
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末雾棺,一起剝皮案震驚了整個濱河市膊夹,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌捌浩,老刑警劉巖放刨,帶你破解...
    沈念sama閱讀 218,122評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異尸饺,居然都是意外死亡进统,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評論 3 395
  • 文/潘曉璐 我一進店門浪听,熙熙樓的掌柜王于貴愁眉苦臉地迎上來麻昼,“玉大人,你說我怎么就攤上這事馋辈「” “怎么了?”我有些...
    開封第一講書人閱讀 164,491評論 0 354
  • 文/不壞的土叔 我叫張陵迈螟,是天一觀的道長叉抡。 經(jīng)常有香客問我,道長答毫,這世上最難降的妖魔是什么褥民? 我笑而不...
    開封第一講書人閱讀 58,636評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮洗搂,結(jié)果婚禮上消返,老公的妹妹穿的比我還像新娘。我一直安慰自己耘拇,他們只是感情好撵颊,可當(dāng)我...
    茶點故事閱讀 67,676評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著惫叛,像睡著了一般倡勇。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上嘉涌,一...
    開封第一講書人閱讀 51,541評論 1 305
  • 那天妻熊,我揣著相機與錄音夸浅,去河邊找鬼。 笑死扔役,一個胖子當(dāng)著我的面吹牛帆喇,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播亿胸,決...
    沈念sama閱讀 40,292評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼坯钦,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了损敷?” 一聲冷哼從身側(cè)響起葫笼,我...
    開封第一講書人閱讀 39,211評論 0 276
  • 序言:老撾萬榮一對情侶失蹤拗馒,失蹤者是張志新(化名)和其女友劉穎路星,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體诱桂,經(jīng)...
    沈念sama閱讀 45,655評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡洋丐,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,846評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了挥等。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片友绝。...
    茶點故事閱讀 39,965評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖肝劲,靈堂內(nèi)的尸體忽然破棺而出迁客,到底是詐尸還是另有隱情,我是刑警寧澤辞槐,帶...
    沈念sama閱讀 35,684評論 5 347
  • 正文 年R本政府宣布掷漱,位于F島的核電站,受9級特大地震影響榄檬,放射性物質(zhì)發(fā)生泄漏卜范。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,295評論 3 329
  • 文/蒙蒙 一鹿榜、第九天 我趴在偏房一處隱蔽的房頂上張望海雪。 院中可真熱鬧,春花似錦舱殿、人聲如沸奥裸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,894評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽刺彩。三九已至,卻和暖如春枝恋,著一層夾襖步出監(jiān)牢的瞬間创倔,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,012評論 1 269
  • 我被黑心中介騙來泰國打工焚碌, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留畦攘,地道東北人。 一個月前我還...
    沈念sama閱讀 48,126評論 3 370
  • 正文 我出身青樓十电,卻偏偏與公主長得像知押,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子鹃骂,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,914評論 2 355

推薦閱讀更多精彩內(nèi)容

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