溫馨提示×

溫馨提示×

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

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

如何使用CSS實(shí)現(xiàn)一個(gè)吃豆人的Loading加載效果

發(fā)布時(shí)間:2022-01-05 10:33:06 來源:億速云 閱讀:197 作者:小新 欄目:web開發(fā)

小編給大家分享一下如何使用CSS實(shí)現(xiàn)一個(gè)吃豆人的Loading加載效果,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

實(shí)現(xiàn)吃豆人的大嘴巴

先來實(shí)現(xiàn)左邊的大嘴巴,我是用了兩個(gè)這種形狀的東西,完后給下面的那個(gè)margin-top:-50px,它倆就實(shí)現(xiàn)了重疊,之后用動畫效果,讓上面順時(shí)針旋轉(zhuǎn),下方與之相反,旋轉(zhuǎn)90°就可以實(shí)現(xiàn)嘴巴張開合上的動作了。

如何使用CSS實(shí)現(xiàn)一個(gè)吃豆人的Loading加載效果

    width: 0px;
    height: 0px;
    border-right: 25px solid transparent;
    border-top: 25px solid #279fcf;
    border-left: 25px solid #279fcf;
    border-bottom: 25px solid #279fcf;
    border-radius: 25px;

旋轉(zhuǎn)動畫分別是:

@keyframes rotate_pacman_up {
  0% {
    -webkit-transform: rotate(270deg);
            transform: rotate(270deg); }

  50% {
    -webkit-transform: rotate(360deg);
            transform: rotate(360deg); }

  100% {
    -webkit-transform: rotate(270deg);
            transform: rotate(270deg); } 
}
@keyframes rotate_pacman_down {
  0% {
    -webkit-transform: rotate(90deg);
            transform: rotate(90deg); 
     }

  50% {
    -webkit-transform: rotate(0deg);
            transform: rotate(0deg);
      }

  100% {
    -webkit-transform: rotate(90deg);
            transform: rotate(90deg);
       } 
}

之后將動畫加到我們剛剛生成的那兩個(gè)元素的css中即可(運(yùn)用這個(gè)屬性就行:animation),因?yàn)槲沂?code>div套了div,所以我用的是偽元素來選擇的:分別是first-of-typenth-child(2),選中了第一個(gè)跟第二個(gè)div來作為吃豆人的嘴巴。

要注意的是,兩個(gè)嘴巴的動畫時(shí)間要同步,否則這個(gè)嘴可就上下亂竄了:

    animation: rotate_pacman_up 0.75s 0s infinite

現(xiàn)在的效果是這樣的:

如何使用CSS實(shí)現(xiàn)一個(gè)吃豆人的Loading加載效果

實(shí)現(xiàn)吃豆人的豆子

同樣,我們在剛剛的兩個(gè)div同級的地方,又建了三個(gè)div,我真是太喜歡div了~

萬物皆可div!??!

豆子相對于嘴巴來說就很簡單,首先他是圓的,其次呢,它的動畫是向左移動的,具備這兩個(gè)條件,就可以了。我們直接使用偽元素選中3、4、5三個(gè)div,加上這段css即可。

    background-color: #279fcf;
    width: 15px;
    height: 15px;
    border-radius: 100%;
    margin: 2px;
    width: 10px;
    height: 10px;
    position: absolute;
    transform: translate(0, -6.25px);
    top: 25px;
    left: 100px;

會不會有人問:為什么你就知道定位的時(shí)候是-6.25px呢?,最后解釋最后解釋。

接下來加上向左移動的動畫:

@keyframes pacman-balls {
  75% {
    opacity: 0.7; }

  100% {
    -webkit-transform: translate(-100px, -6.25px);
            transform: translate(-100px, -6.25px); } 
}

似乎,要是走一段變得透明一些是不是會更好?這個(gè)有待考慮~

最后將動畫分別用選擇器掛到第3、4、5個(gè)div上就行啦,同時(shí)要注意,動畫的起始時(shí)間不要設(shè)置成一樣的,否則它們就同步啦?。?!我這里設(shè)置的分別是0.33/0.66/0.99秒哦~ 就像這樣:

    animation: pacman-balls 1s 0.33/0.66/0.99s infinite linear

看一下最終效果吧~

如何使用CSS實(shí)現(xiàn)一個(gè)吃豆人的Loading加載效果

關(guān)于那個(gè)-6.25px

其實(shí).....我研究了好半天,我把圖給大家,要是能算出來也幫我算算,我最后是實(shí)驗(yàn)出來的,6到7都差不多,但是6.25更順眼一些emmm,但是實(shí)驗(yàn)到7px的時(shí)候,小圓的圓心就有點(diǎn)明顯偏上了,所以emm就6.25吧(差不多~,還有就是我想寫6.5的,但是總覺得6.25好聽點(diǎn)emm)。

如何使用CSS實(shí)現(xiàn)一個(gè)吃豆人的Loading加載效果

看完了這篇文章,相信你對“如何使用CSS實(shí)現(xiàn)一個(gè)吃豆人的Loading加載效果”有了一定的了解,如果想了解更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI