溫馨提示×

溫馨提示×

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

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

如何使用CSS實現(xiàn)一個喜慶的燈籠動畫效果

發(fā)布時間:2022-01-11 09:39:06 來源:億速云 閱讀:167 作者:iii 欄目:web開發(fā)

本文小編為大家詳細(xì)介紹“如何使用CSS實現(xiàn)一個喜慶的燈籠動畫效果”,內(nèi)容詳細(xì),步驟清晰,細(xì)節(jié)處理妥當(dāng),希望這篇“如何使用CSS實現(xiàn)一個喜慶的燈籠動畫效果”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學(xué)習(xí)新知識吧。

如何使用CSS實現(xiàn)一個喜慶的燈籠動畫效果

animation屬性

畫燈籠我們肯定不能畫一個靜態(tài)的燈籠,我們先來復(fù)習(xí)一下CSS中的animation屬性,該是是一個簡寫屬性,由animation-name,animation-duration, animation-timing-function,animation-delayanimation-iteration-count,animation-directionanimation-fill-modeanimation-play-state 屬性組成。這里我們就不展開講解了,具體可以到MDN中學(xué)習(xí)。

我們先來看一下下面這個示例:

animation: swing 3s infinite ease-in-out;

在上面的例子中使用了一個名為swing的動畫序列,動畫序列通過@keyframes創(chuàng)建,執(zhí)行時間3s,動畫循環(huán)執(zhí)行,最后ease-in-out表示動畫執(zhí)行的節(jié)奏。

實現(xiàn)思路

  • 為一個矩形添加border-radius使其,形成一個燈籠的外形。

  • 為矩形添加::before::after來形成燈籠的頂部和頭部

  • 畫一個燈籠線。

  • 在 矩形內(nèi)部添加兩個比較細(xì)的矩形,通過添加 border-radius 來形成燈籠的線條。

  • 設(shè)置燈籠的動畫效果

  • 添加燈穗的樣式

接下來我們就分步驟實現(xiàn)。

繪制燈籠外形

首先我們定義HTML結(jié)構(gòu),代碼如下:

<!-- 燈籠容器 -->
<div class="lantern-con">
  <!-- 提著燈籠的線 -->
  <div class="lantern-line"></div>
  <!-- 燈籠主要區(qū)域 -->
  <div class="lantern-light">
  </div>
</div>

然后我們畫一個橢圓,然后通過::before::after,繪制上下的兩個燈籠蓋,CSS如下:

/* 燈籠容器 */
.lantern-con {
  position: fixed;
  left: 160px;
}

/* 燈籠中間紅色區(qū)域 */
.lantern-light {
  position: relative;
  width: 120px;
  height: 90px;
  background-color: red;
  margin: 30px;
  border-radius: 50%;
  box-shadow: -5px 5px 50px 4px #fa6c00;
  /* 設(shè)置旋轉(zhuǎn)點 */
  transform-origin: top center;
  animation: swing 3s infinite ease-in-out;
}

/* 燈籠頂部和底部的樣式 */
.lantern-light::before,
.lantern-light::after {
  content: '';
  position: absolute;
  border: 1px solid #dc8f03;
  width: 60px;
  height: 12px;
  /* 背景漸變 */
  background: linear-gradient(
    to right,
    #dc8f03,
    #ffa500,
    #dc8f03,
    #ffa500,
    #dc8f03
  );
  left: 30px;
}

/* 頂部位置 */
.lantern-light::before {
  top: -7px;
  border-top-left-radius: 5px;
  border-top-right-radius: 5px;
}

/* 底部位置 */
.lantern-light::after {
  bottom: -7px;
  border-bottom-left-radius: 5px;
  border-bottom-right-radius: 5px;
}

/* 提著燈籠的線的樣式 */
.lantern-line {
  width: 2px;
  height: 50px;
  background-color: #dc8f03;
  position: absolute;
  left: 88px;
}
/* 燈籠的動畫效果 */
@keyframes swing {
  0% {
    transform: rotate(-6deg);
  }

  50% {
    transform: rotate(6deg);
  }

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

現(xiàn)在就實現(xiàn)了一個比較基礎(chǔ)燈籠外形,效果如下:

如何使用CSS實現(xiàn)一個喜慶的燈籠動畫效果

燈籠內(nèi)部線條

燈籠的內(nèi)部線條是通過兩個矩形實現(xiàn)了,通過border-radius屬性將其設(shè)置為橢圓,然后繪制邊,呈現(xiàn)燈籠線條。

<div class="lantern-light">
  <!-- 燈籠中間的線條 -->
  <div class="lantern-circle">
    <div class="lantern-rect">
      <!-- 燈籠中間的文字內(nèi)容 -->
      <div class="lantern-text">燈籠</div>
    </div>
  </div>
</div>

對應(yīng)的CSS如下:

/* 燈籠中間的線條 */
.lantern-circle,
.lantern-rect {
  height: 90px;
  border-radius: 50%;
  border: 2px solid #dc8f03;
  background-color: rgba(216, 0, 15, 0.1);
}

/* 外層 */
.lantern-circle {
  width: 100px;
  margin: 12px 8px 8px 10px;
}

/* 內(nèi)層 */
.lantern-rect {
  margin: -2px 8px 8px 26px;
  width: 45px;
}

/* 文字樣式 */
.lantern-text {
  font-size: 28px;
  font-weight: bold;
  text-align: center;
  color: #dc8f03;
  margin-top: 4px;
}

效果如下:

如何使用CSS實現(xiàn)一個喜慶的燈籠動畫效果

燈籠穗

現(xiàn)在我們來繪制一下燈籠穗,這個東西比較簡單,最主要的是添加一個動畫效果,其HTML結(jié)構(gòu)如下:

<!-- 燈籠主要區(qū)域 -->
<div class="lantern-light">
  <!-- more code -->
  <!-- 燈籠穗 -->
  <div class="lantern-tassel-top">
    <div class="lantern-tassel-middle"></div>
    <div class="lantern-tassel-bottom"></div>
  </div>
</div>

CSS如下:

/* 燈穗 */
.lantern-tassel-top {
  width: 5px;
  height: 20px;
  background-color: #ffa500;
  border-radius: 0 0 5px 5px;
  position: relative;
  margin: -5px 0 0 59px;
  /* 讓燈穗也有一個動畫效果 */
  animation: swing 3s infinite ease-in-out;
}

.lantern-tassel-middle,
.lantern-tassel-bottom {
  position: absolute;
  width: 10px;
  left: -2px;
}

.lantern-tassel-middle {
  border-radius: 50%;
  top: 14px;
  height: 10px;
  background-color: #dc8f03;
  z-index: 2;
}

.lantern-tassel-bottom {
  background-color: #ffa500;
  border-bottom-left-radius: 5px;
  height: 35px;
  top: 18px;
  z-index: 1;
}

到這我們就把這個燈籠畫完了。

如何使用CSS實現(xiàn)一個喜慶的燈籠動畫效果

讀到這里,這篇“如何使用CSS實現(xiàn)一個喜慶的燈籠動畫效果”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領(lǐng)會,如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注億速云行業(yè)資訊頻道。

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

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

css
AI