搜尋
首頁web前端html教學關於html如何打造動畫可愛的蛙蛙表情的案例分享

先感受一下全部表情包:


#在開始前先安麗一個知識點:Flex彈性佈局
  • 我們一般做水平三列佈局都是用的float方法,將每一塊浮動顯示在同一行。這種方法會導致元素沒有原來的高度屬性,要用清除浮動來解決空間佔據問題。對於那些特殊佈局非常不方便,例如,垂直居中就不容易實現。

  • 2009年,W3C 提出了一個新的方案----Flex 佈局,可以簡單、完整、響應式地實現各種頁面佈局。目前,它已經得到了幾乎所有瀏覽器的支持,這意味著,現在就能很安全地使用這項功能。基本語法查看部落格:Flex 佈局教學:語法篇

  • 另外還要對css中的偽元素有一定的了解:before、after

  • 最後想要表情動起來,最主要的就是animation屬性的使用了。

整體佈局

我們先對整體座椅個佈局,使各個表情能直觀的展示在各個位置上,因為每個表情幾乎佔據的是一個正方形的空間,所以我們將每個青蛙表情水平展示在頁面上,這裡就用到了flex佈局方式。

<p class="container">
<!--所有表情的存放容器,flex布局,所有子项目水平显示,自动换行,水平居中显示,竖直方向从顶部开始-->
<p class="emoji-container">   
<!--存放青蛙表情的大容器,控制大小间距之类的属性-->    
<p class="icon">       
<!--存放每一个青蛙表情的容器,控制每一个表情自己的位置和特征-->    
<p class="frog" id="frog-n"></p></p></p></p>
body {background-color: #F1FFE6;}
.container {width: 950px;margin: 70px auto 0px auto;text-align: center;}
.container .emoji-container {
/*flex弹性布局,多用于左右并排布局,跟float的作用类似,不用清除浮动*/
display: -webkit-box;   
display: -ms-flexbox;
display: flex;
/*justify-content属性定义了项目在主轴上的对齐方式。center就是在x轴上居中显示*/
-ms-grid-column-align: center;
    justify-items: center;
/*align-items属性定义项目在交叉轴上如何对齐。flex-start就是从y轴的最上端开始排列*/
-webkit-box-align: start;
    -ms-flex-align: start;
        align-items: flex-start;
/*flex-wrap属性定义,如果一条轴线排不下,如何换行。wrap:换行,第一行在上方。*/
-ms-flex-wrap: wrap;
    flex-wrap: wrap;
}
.container .emoji-container .icon {
margin-right: 40px;
margin-bottom: 40px;
}
.container .emoji-container .icon:nth-child(6n) {
margin-right: 0px;
}
.icon {width: 125px;height: 120px;position: relative;}
.icon .frog {position: absolute; top: 0;left: 0;width: 100%;height: 100%;}
蛙蛙的通用樣式

觀察一個每一個蛙蛙表情,雖然每一個表情形態各異,但是它們的身體、嘴巴、眼睛、小紅暈的位置和大小幾乎都是一致,這些一致的樣式我們可以寫成公用樣式,每個蛙蛙的特徵再根據每個人蛙蛙的id寫單一的樣式進行重繪或覆蓋。

<p class="frog" id="frog-1">
      <!-- 蛙蛙的身体部分 -->
      <p class="body">
        <!-- 蛙蛙的嘴巴 -->
        <p class="mouth"></p>
      </p>
      <!-- 蛙蛙的眼睛 -->
      <p class="eyes">
        <!-- 蛙蛙的左右眼睛 -->
        <p class="eye eye-left">
          <!-- 蛙蛙的内眼圈儿 -->
          <p class="eye-inner">
            <!-- 蛙蛙的眼珠 -->
            <p class="pupil">
              <!-- 蛙蛙眼圈里的光晕 -->
              <p class="light"></p>
            </p>
          </p>
        </p>
        <p class="eye eye-right">
          <p class="eye-inner">
            <p class="pupil">
              <p class="light"></p>
            </p>
          </p>
        </p>
      </p>        
    </p>
    /*蛙蛙身体部分样式*/
    .icon .frog .body {
    width: 110px;
    height: 86px;
    background-color: #A3D768;                   
    border-radius: 50%;
    position: absolute;
    top: 25px;left: 0;
    right: 0;                    
    margin: auto;box-shadow: 4px 4px 0px 0px rgba(163, 215, 104, 0.3);
}
/*蛙蛙嘴巴部分样式,因为每个蛙蛙的嘴巴不一样,所以公共样式就只定义了位置*/
.icon .frog .body .mouth {
margin: auto;
}
.icon .frog .eyes {
width: 86px;
height: 35px;
position: absolute;                   
top: 8px;
left: 0;right: 0;
margin: auto;
}
/*蛙蛙眼睛部分样式*/
.icon .frog .eyes .eye {width: 35px;height: 35px;}
.icon .frog .eyes .eye:before {content: "";display: block;width: 100%;height: 100%;                               
background-color: #A3D768;border-radius: 50%;
}
/*蛙蛙眼圈部分样式*/
.icon .frog .eyes .eye .eye-inner {background-color: #fff;width: 80%;height: 80%;          
position: absolute;top: 10%;left: 10%;border-radius: 50%;
}
/*蛙蛙眼珠部分样式*/
.icon .frog .eyes .eye .eye-inner .pupil {background-color: #3F6A34;          
width: 60%;height: 60%;position: absolute;top: 20%;left: 20%;border-radius: 50%;
}
/*蛙蛙眼珠里的亮光部分样式*/
.icon .frog .eyes .eye .eye-inner .pupil .light {background-color: #fff;          
width: 50%;height: 50%;position: absolute;top: 10%;left: 10%;border-radius: 50%;
}
/*蛙蛙左右两边眼睛的位置*/
.icon .frog .eyes .eye-left {position: absolute;top: 0px;left: 0;}.icon .frog .eyes .eye-right {position: absolute;top: 0px;right: 0;}


蛙蛙基本公用樣式.png

第一隻小青蛙
第一隻小青蛙

第一隻小青蛙是在基本樣式的基礎上有一個嘴角上揚的動態效果,所以要完成第一隻蛙蛙的繪製,只要在公用樣式的基礎上加上嘴巴的動效就可以了,dom結構也是一樣的。

.frog#frog-1 .body .mouth {
width: 18px;height: 22px;
border-bottom: 3px solid #3F6A34;
position: absolute;top: 6px;left: 0;right: 0;
-webkit-animation: smile 3.8s linear 0s infinite;        
animation: smile 3.8s linear 0s infinite;
}
@-webkit-keyframes smile {
0% {  border-radius: 0%;
}
20% {  border-radius: 50%;
}
70% {  border-radius: 50%;
}
}
@keyframes smile {
0% {  border-radius: 0%;
}
20% {  border-radius: 50%;
}
70% {  border-radius: 50%;
}
}


第一隻蛙蛙動圖.gif

第二隻小青蛙
    ##第二隻小青蛙的嘴巴是一個大嘴巴,臉頰上還有兩個小紅暈,眼睛是冒著愛心的,所以在dom結構上要加上紅暈的p,嘴巴眼睛的樣式也要做相應的修改。 (主要是嘴巴、紅暈和紅色愛心的製作)

    <p class="frog" id="frog-2">    
          <p class="body">
            <!--存放蛙蛙的脸颊红晕-->
            <p class="blush"></p>
           <!--加上大嘴巴的class big-month-->
            <p class="mouth big-mouth"></p>
          </p>    
          <p class="eyes">
            <p class="eye eye-left">
              <p class="eye-inner">
                <p class="pupil">
                  <p class="light"></p>
                </p>
              </p>
            </p>
            <p class="eye eye-right">
              <p class="eye-inner">
                <p class="pupil">
                  <p class="light"></p>
                </p>
              </p>
            </p>
          </p>        
        </p>/*第二只青蛙脸颊两边的红晕样式*
        /.icon .frog .body .blush {width: 75px;height: 9px;position: absolute;            
        top: 20px;left: 0;right: 0;margin: auto;
    }
    .icon .frog .body .blush:before, .icon .frog .body .blush:after {            
    content: "";
    display: block;width: 12px;height: 100%;background-color: #F7D2C9;border-radius: 50%;
    }
    .icon .frog .body .blush:before {position: absolute;top: 0;left: 0;}
    .icon .frog .body .blush:after {position: absolute;top: 0;right: 0;}
    /*第二只青蛙的嘴巴样式,用圆角和阴影的方式制作而成*/
    .icon .frog .body .big-mouth {width: 30px;height: 20px;border-radius: 0 0 50% 50%;            
    box-shadow: 2px 2px 0px 0px rgba(63, 106, 52, 0.3);
    }
    .frog#frog-2 .mouth {background-color: #fff;position: absolute;top: 30px;left: 0;right: 0;
    }
    /*第二只青蛙的眼睛样式,将眼圈的背景设置为透明色,圆圈里面的亮光隐藏*/
    .frog#frog-2 .eye-inner {top: 17%;background-color: transparent !important;
    -webkit-animation: hearts 0.6s linear 0s infinite alternate;        
    animation: hearts 0.6s linear 0s infinite alternate;
    }
    @-webkit-keyframes hearts {0% {
      -webkit-transform: scale(0.7);          
      transform: scale(0.7);
    }100% {
      -webkit-transform: scale(1);          
      transform: scale(1);
    }
    }
    @keyframes hearts {0% {
      -webkit-transform: scale(0.7);          
      transform: scale(0.7);
    }100% {
      -webkit-transform: scale(1);          
      transform: scale(1);
    }
    }
    /*第二只青蛙的眼睛的爱心样式,左上角和右上角设置交圆角50%,然后左右对应的旋转45度合并成一个爱心的形状*/
    .frog#frog-2 .eye-inner:before, .frog#frog-2 .eye-inner:after {content: "";display: block;          
    height: 70%;width: 40%;background-color: #C71F1C;border-radius: 50% 50% 0 0;
    }
    .frog#frog-2 .eye-inner:before {position: absolute;top: 0;left: 5px;
               -webkit-transform: rotate(-45deg);                    
               transform: rotate(-45deg);
    }
    .frog#frog-2 .eye-inner:after {position: absolute;top: 0;right: 5px;
                -webkit-transform: rotate(45deg);                    
                transform: rotate(45deg);
    }
    .frog#frog-2 .eye-inner .pupil {display: none;}

#第二隻蛙蛙動圖.gif

第第三隻小青蛙
  • 第三隻小青蛙相對於公共樣式的變化是眼睛和嘴巴的變化,所以最主要的是畫出左眼樣式和嘴巴樣式。

  • 舌頭的製作一個橢圓旋轉對應的角度額按後被嘴巴遮擋住一部分製作而成,



    第三隻青蛙的舌頭分解顯示.png

  • <p class="frog" id="frog-3">
            <p class="body">
              <p class="mouth">
                <!--存放舌头样式的容器-->
                <p class="toungue"></p>
              </p>
            </p>
            <p class="eyes">
              <!--左眼添加wink的样式,作为左眼眯眼样式-->
              <p class="eye eye-left wink">
                <p class="eye-inner">
                  <p class="pupil">
                    <p class="light"></p>
                  </p>
                </p>
              </p>
              <p class="eye eye-right">
                <p class="eye-inner">
                  <p class="pupil">
                    <p class="light"></p>
                  </p>
                </p>
              </p>
            </p>    
          </p>
    /*第三只小青蛙的左眼眯眼样式*/
    .icon .frog .eyes .eye.wink .eye-inner {
      background-color: transparent;
      width: 17px;
      height: 3px;
      background-color: #3F6A34;
      border-radius: 0;
      position: absolute;
      top: 15px;
      left: 0;
      right: 0;
      margin: auto;
      -webkit-transform: rotate(21deg);
              transform: rotate(21deg);
    }
    .icon .frog .eyes .eye.wink .eye-inner:before, .icon .frog .eyes .eye.wink .eye-inner:after {
      content: &#39;&#39;;
      display: block;
      width: 17px;
      height: 3px;
      background-color: #3F6A34;
    }
    .icon .frog .eyes .eye.wink .eye-inner:before {
      -webkit-transform: rotate(25deg);
              transform: rotate(25deg);
      position: absolute;
      top: -4px;
      left: 0;
    }
    .icon .frog .eyes .eye.wink .eye-inner:after {
      -webkit-transform: rotate(-25deg);
              transform: rotate(-25deg);
      position: absolute;
      top: 4px;
      left: 0;
    }
    .icon .frog .eyes .eye.wink .pupil {
      display: none;
    }
    /*第三只小青蛙的右眼亮光位置*/
    .frog#frog-3 .eye-right .light {
      position: absolute;
      top: 10%;
      left: auto;
      right: 10%;
    }
    /*第三只小青蛙的嘴巴吐舌头样式*/
    .frog#frog-3 .mouth {
      width: 25px;
      height: 25px;
      position: absolute;
      top: 5px;
      left: 0;
      right: 0;
      -webkit-transform: rotate(23deg);
              transform: rotate(23deg);
    }
    .frog#frog-3 .mouth:before {
      content: "";
      display: block;
      border-bottom: 3px solid #3F6A34;
      width: 100%;
      height: 100%;
      border-radius: 50%;
      background-color: #A3D768;
      z-index: 3;
      position: absolute;
      top: 0px;
      left: 0;
    }
    .frog#frog-3 .toungue {
      width: 16px;
      height: 20px;
      background-color: #C71F1C;
      border-radius: 30px;
      z-index: 2;
      position: absolute;
      top: 17px;
      left: 4px;
      -webkit-transform-origin: center top;
              transform-origin: center top;
      -webkit-animation: toungue 2.0s linear 0s infinite;
              animation: toungue 2.0s linear 0s infinite;
    }
    @-webkit-keyframes toungue {
      0% {
        -webkit-transform: scale(1, 1);
                transform: scale(1, 1);
      }
      40% {
        -webkit-transform: scale(1, 1);
                transform: scale(1, 1);
      }
      75% {
        -webkit-transform: scale(1, 0);
                transform: scale(1, 0);
      }
    }
    @keyframes toungue {
      0% {
        -webkit-transform: scale(1, 1);
                transform: scale(1, 1);
      }
      40% {
        -webkit-transform: scale(1, 1);
                transform: scale(1, 1);
      }
      75% {
        -webkit-transform: scale(1, 0);
                transform: scale(1, 0);
      }
    }
    .frog#frog-3 .toungue:before {
      content: "";
      display: block;
      width: 2px;
      height: 4px;
      background-color: #410a09;
      position: absolute;
      left: 0px;
      right: 0px;
      bottom: 5px;
      margin: auto;
      opacity: 0.4;
    }

關於html如何打造動畫可愛的蛙蛙表情的案例分享

#第三隻蛙蛙動圖.gif

#第四隻小青蛙

第四隻小青蛙相對於公共樣式的變化是眼睛和嘴巴的變化,眼睛的眼珠裡面有兩個亮光點,嘴巴是大嘴巴並且可以一張一合,嘴巴裡面還有一個小舌頭。它的光暈處於一會有一會沒有的狀態。

<p class="frog" id="frog-4">
      <p class="body">
        <p class="mouth big-mouth">
          <p class="toungue"></p>
        </p>
      </p>    
      <p class="eyes">
        <!--控制另一个眼珠闪光点的样式extra-light-->
        <p class="eye eye-left extra-light">
          <p class="eye-inner">
            <p class="pupil">
              <p class="light"></p>
            </p>
          </p>
        </p>
        <p class="eye eye-right extra-light">
          <p class="eye-inner">
            <p class="pupil">
              <p class="light"></p>
            </p>
          </p>
        </p>
      </p>
    </p>
/*第四只小青蛙眼珠另一个闪光点样式*/
.icon .frog .eyes .eye.extra-light .light {width: 40%;height: 40%;}
.icon .frog .eyes .eye.extra-light .light:before {content: "";display: block;width: 70%;
            height: 70%;background-color: #fff;border-radius: 50%;
}

關於html如何打造動畫可愛的蛙蛙表情的案例分享

第四隻蛙蛙動圖.gif

#剩餘的其它蛙蛙

其它蛙蛙的畫法都是在基於通用樣式的基礎上對獨特樣式進行編寫,最重要的是對動畫幀的控制,各種形狀就是基本幾何圖形的拼接(正方形,border-radius,transform,position的合理運用)。

由於程式碼量太大我就不在文章裡贅述,主要還是動畫幀的熟練運用! (重要的事情說三次)。

以上是關於html如何打造動畫可愛的蛙蛙表情的案例分享的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
HTML中的布爾屬性是什麼?舉一些例子。HTML中的布爾屬性是什麼?舉一些例子。Apr 25, 2025 am 12:01 AM

布爾屬性是HTML中的特殊屬性,不需要值即可激活。 1.布爾屬性通過存在與否控制元素行為,如disabled禁用輸入框。 2.它們的工作原理是瀏覽器解析時根據屬性的存在改變元素行為。 3.基本用法是直接添加屬性,高級用法可通過JavaScript動態控制。 4.常見錯誤是誤以為需要設置值,正確寫法應簡潔。 5.最佳實踐是保持代碼簡潔,合理使用布爾屬性以優化網頁性能和用戶體驗。

如何驗證您的HTML代碼?如何驗證您的HTML代碼?Apr 24, 2025 am 12:04 AM

HTML代碼可以通過在線驗證器、集成工具和自動化流程來確保其清潔度。 1)使用W3CMarkupValidationService在線驗證HTML代碼。 2)在VisualStudioCode中安裝並配置HTMLHint擴展進行實時驗證。 3)利用HTMLTidy在構建流程中自動驗證和清理HTML文件。

HTML與CSS和JavaScript:比較Web技術HTML與CSS和JavaScript:比較Web技術Apr 23, 2025 am 12:05 AM

HTML、CSS和JavaScript是構建現代網頁的核心技術:1.HTML定義網頁結構,2.CSS負責網頁外觀,3.JavaScript提供網頁動態和交互性,它們共同作用,打造出用戶體驗良好的網站。

HTML作為標記語言:其功能和目的HTML作為標記語言:其功能和目的Apr 22, 2025 am 12:02 AM

HTML的功能是定義網頁的結構和內容,其目的在於提供一種標準化的方式來展示信息。 1)HTML通過標籤和屬性組織網頁的各個部分,如標題和段落。 2)它支持內容與表現分離,提升維護效率。 3)HTML具有可擴展性,允許自定義標籤增強SEO。

HTML,CSS和JavaScript的未來:網絡開發趨勢HTML,CSS和JavaScript的未來:網絡開發趨勢Apr 19, 2025 am 12:02 AM

HTML的未來趨勢是語義化和Web組件,CSS的未來趨勢是CSS-in-JS和CSSHoudini,JavaScript的未來趨勢是WebAssembly和Serverless。 1.HTML的語義化提高可訪問性和SEO效果,Web組件提升開發效率但需注意瀏覽器兼容性。 2.CSS-in-JS增強樣式管理靈活性但可能增大文件體積,CSSHoudini允許直接操作CSS渲染。 3.WebAssembly優化瀏覽器應用性能但學習曲線陡,Serverless簡化開發但需優化冷啟動問題。

HTML:結構,CSS:樣式,JavaScript:行為HTML:結構,CSS:樣式,JavaScript:行為Apr 18, 2025 am 12:09 AM

HTML、CSS和JavaScript在Web開發中的作用分別是:1.HTML定義網頁結構,2.CSS控製網頁樣式,3.JavaScript添加動態行為。它們共同構建了現代網站的框架、美觀和交互性。

HTML的未來:網絡設計的發展和趨勢HTML的未來:網絡設計的發展和趨勢Apr 17, 2025 am 12:12 AM

HTML的未來充滿了無限可能。 1)新功能和標準將包括更多的語義化標籤和WebComponents的普及。 2)網頁設計趨勢將繼續向響應式和無障礙設計發展。 3)性能優化將通過響應式圖片加載和延遲加載技術提升用戶體驗。

HTML與CSS vs. JavaScript:比較概述HTML與CSS vs. JavaScript:比較概述Apr 16, 2025 am 12:04 AM

HTML、CSS和JavaScript在網頁開發中的角色分別是:HTML負責內容結構,CSS負責樣式,JavaScript負責動態行為。 1.HTML通過標籤定義網頁結構和內容,確保語義化。 2.CSS通過選擇器和屬性控製網頁樣式,使其美觀易讀。 3.JavaScript通過腳本控製網頁行為,實現動態和交互功能。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具