搜尋
首頁web前端css教學手把手帶你使用CSS繪製一個可愛卡通獅子動畫

怎麼利用CSS繪製獅子動畫?以下這篇文章手把手帶大家一步步利用CSS繪製一個可愛卡通獅子動畫,希望對大家有幫助。

手把手帶你使用CSS繪製一個可愛卡通獅子動畫

本期我們要使用純css來繪製出一個乖巧可愛的卡通獅子,透過這個栗子我們可以熟悉更多的css繪製技巧,相信在以後的界面繪製任務中更加得心應手。 【推薦學習:css影片教學

示範

正文

基礎繪製

我們在先來康康這隻獅子有哪些部分組成:

手把手帶你使用CSS繪製一個可愛卡通獅子動畫

#透過以上視圖,這隻獅子是由耳朵眼睛鼻子鬍鬚嘴巴鬃毛前腿爪子尾巴 這些部分組成。相信大家不難看出很多部位可以透過非常簡單做長方形和圓角句可以完成他們。例如眼睛,就是兩個圓形堆疊而成,具體可以看​​上面的程式碼演示,這裡對於這些基礎圖形就不做過多講述了。

接下來,我們就具體來說,一些不好畫的圖形吧。

耳朵

可以看到它似半圓形,像是花瓣一樣,常規方法來做的話肯定是不好實現的, 但可以透過 clip-path 屬性,它是使用裁切方式建立元素的可顯示區域,其區域內的部分顯示,區域外的隱藏。而繪製耳朵,我們就利用這區域裁剪,其ellipse 橢圓裁切的方法,其兩個傳入至分別表示其裁切的半徑,而at後的兩個值則代表裁剪的x與y軸的座標。

.ear {
    width: 70px;
    height: 70px;
    position: absolute;
    top: 10px;
    background-color: var(--skin-color);
    z-index: 9;
    border-radius: 40px;
    clip-path: ellipse(100% 100% at -20% -10%);
}

手把手帶你使用CSS繪製一個可愛卡通獅子動畫

同理,那個類似半圓的身體也是透過clip-path: ellipse 來實現的,當然不止於此他可以裁剪出任何圖形來,可以說非常的強大了。

鼻子

鼻子是一個三角形而構成,css繪製三角形也是一個小技巧,就是把widthheight 設為0,單純使用border 屬性來完成,設定border-width 使其取代區塊的寬高,但其區塊的內部是由四個小三角形拼成的矩形了,然後因為排布是上右下左的順序,所以只要給其中一個角的顏色賦值即可實現一個三角形。

.nose {
    width: 0px;
    height: 0px;
    border-width: 20px 30px;
    border-style: solid;
    border-color: var(--eye-color) transparent transparent transparent;
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    margin-top: 40px;
    z-index: 3;
}

手把手帶你使用CSS繪製一個可愛卡通獅子動畫

尾巴

尾主要也是利用 border 來實現,畫一個矩形div塊,讓他旋轉某個角度,然後只繪製其中一個邊框,然後再使用 border-radius: 40% 50% , 給它彎曲的一種感覺就大功告成了。

.tail {
    width: 320px;
    height: 320px;
    position: absolute;
    top: -137px;
    border-style: solid;
    border-width: 30px;
    border-radius: 40% 50%;
    border-color: transparent var(--tail-color) transparent transparent;
    transform: rotate(125deg);
    left: -180px;
}

手把手帶你使用CSS繪製一個可愛卡通獅子動畫

#動畫製作

transform-origin 屬性,它可以讓你更改一個元素變形的原點,如,根部發力那麼就直接設定成 transform-origin: 50% 100%keywordleft
尾部的力量都源自於尾巴根,所以要從根部進行一個輕微搖擺的旋轉動畫,所以,我們就利用到了
也可以寫成  transform-origin: center bottom 第一個參數代表了定義變形中心距離盒模型的左側的偏移值。
value

0%#50%100%keywordtop
center
right
#第二個參數代表了定義變形中心距離盒模型的頂部的偏移值。
value
######0%##################center#############50%######## ##########bottom############100%###############

后面的动画微微的旋转偏移就看下方的代码块了,非常简单只需要微调一些角度和偏移即可。这里再多补充一句,transform 的变换必须是盒模型定位的元素哦。

.tail {
  // ...
  animation: 1s wagging ease-in-out infinite alternate forwards;
  transform-origin: 50% 100%;
}

@keyframes wagging {
  0% {
    transform: rotate(125deg) translateX(0) translateY(0px);
  }
  100% {
    transform: rotate(130deg) translateX(15px) translateY(-15px);
  }
}

手把手帶你使用CSS繪製一個可愛卡通獅子動畫

眨眼睛

眼睛一眨一眨会显得狮子会更生动,但是如果通过缩小高度做动画实现的画,会显得非常难看因为连眼白眼珠都会压缩变形。所以我们依然是通过 clip-path 属性,利用 ellipse 方法把裁剪范围从顶部和底部往中间延伸,直至2%留一道缝隙即可。

.eye {
  // ...
  animation: 4s blinking infinite forwards;
  overflow: hidden;
}
@keyframes blinking {
  0%,
  40%,
  80% {
    clip-path: ellipse(100% 100% at 50% 48%);
  }
  60%,
  100% {
    clip-path: ellipse(100% 2% at 50% 48%);
  }
}

手把手帶你使用CSS繪製一個可愛卡通獅子動畫

看简简单单的几段css代码就让一只灵动乖巧的狮子就坐在你的面前,赶紧尝试一下吧~

(学习视频分享:web前端

以上是手把手帶你使用CSS繪製一個可愛卡通獅子動畫的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文轉載於:掘金社区。如有侵權,請聯絡admin@php.cn刪除
這不應該發生:對不可能進行故障排除這不應該發生:對不可能進行故障排除May 15, 2025 am 10:32 AM

解決這些不可能的問題之一,這是您從未想過的其他問題的問題。

@KeyFrames vs CSS過渡:有什麼區別?@KeyFrames vs CSS過渡:有什麼區別?May 14, 2025 am 12:01 AM

@keyframesandCSSTransitionsdifferincomplexity:@keyframesallowsfordetailedanimationsequences,whileCSSTransitionshandlesimplestatechanges.UseCSSTransitionsforhovereffectslikebuttoncolorchanges,and@keyframesforintricateanimationslikerotatingspinners.

使用頁面CMS進行靜態站點內容管理使用頁面CMS進行靜態站點內容管理May 13, 2025 am 09:24 AM

我知道,我知道:有大量的內容管理系統選項可用,而我進行了幾個測試,但實際上沒有一個是一個,y'知道嗎?怪異的定價模型,艱難的自定義,有些甚至最終成為整個&

鏈接HTML中CSS文件的最終指南鏈接HTML中CSS文件的最終指南May 13, 2025 am 12:02 AM

鏈接CSS文件到HTML可以通過在HTML的部分使用元素實現。 1)使用標籤鏈接本地CSS文件。 2)多個CSS文件可通過添加多個標籤實現。 3)外部CSS文件使用絕對URL鏈接,如。 4)確保正確使用文件路徑和CSS文件加載順序,優化性能可使用CSS預處理器合併文件。

CSS Flexbox與網格:全面評論CSS Flexbox與網格:全面評論May 12, 2025 am 12:01 AM

選擇Flexbox還是Grid取決於佈局需求:1)Flexbox適用於一維佈局,如導航欄;2)Grid適合二維佈局,如雜誌式佈局。兩者在項目中可結合使用,提升佈局效果。

如何包括CSS文件:方法和最佳實踐如何包括CSS文件:方法和最佳實踐May 11, 2025 am 12:02 AM

包含CSS文件的最佳方法是使用標籤在HTML的部分引入外部CSS文件。 1.使用標籤引入外部CSS文件,如。 2.對於小型調整,可以使用內聯CSS,但應謹慎使用。 3.大型項目可使用CSS預處理器如Sass或Less,通過@import導入其他CSS文件。 4.為了性能,應合併CSS文件並使用CDN,同時使用工具如CSSNano進行壓縮。

Flexbox vs Grid:我應該學習兩者嗎?Flexbox vs Grid:我應該學習兩者嗎?May 10, 2025 am 12:01 AM

是的,youshouldlearnbothflexboxandgrid.1)flexboxisidealforone-demensional,flexiblelayoutslikenavigationmenus.2)gridexcelstcelsintwo-dimensional,confffferDesignssignssuchasmagagazineLayouts.3)blosebothenHancesSunHanceSlineHancesLayOutflexibilitibilitibilitibilitibilityAnderibilitibilityAndresponScormentilial anderingStruction

軌道力學(或我如何優化CSS KeyFrames動畫)軌道力學(或我如何優化CSS KeyFrames動畫)May 09, 2025 am 09:57 AM

重構自己的代碼看起來是什麼樣的?約翰·瑞亞(John Rhea)挑選了他寫的一個舊的CSS動畫,並介紹了優化它的思維過程。

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

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

熱門文章

熱工具

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具