精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

CSS單標簽實現轉轉logo

開發 前端
到此我們整個代碼實現過程就結束了,基于一個標簽實現了轉轉的Logo的繪制及動畫效果。當然這只是對其主要的功能還原,如需完整還原細節還需要進一步優化。

轉轉品牌升級后更新了全新的Logo,今天我們用純CSS來實現轉轉的新Logo,為了有一定的挑戰性,這里我們只使用一個標簽實現,將最大化的使用CSS能力完成Logo的繪制與動畫效果。

新logo保留了原本logo里轉轉熊的輪廓,兩個熊耳是兩個衛星圍繞熊頭旋轉,是“循環”的意思。中間傾斜的轉轉首字母“Z”,既像二手質檢的印章,又像N——NEW的首字母,代表著全新的二手生活方式。

以上是我們要還原的Logo效果動圖,現階段使用方式主要是gif和lottie SVG兩種方式。因為我們的目的是使用單標簽實現所有的功能點,對于一些細節部分有所取舍,并不是百分百還原,也并不代表使用CSS的成本和效果是最好的,僅表達CSS的強大能力。接下來分析我們要核心實現的功能點:

  • 開始動畫時中心的大圓以及2個圍繞的小圓都有放大的效果
  • 動畫開始后2個小圓圍繞中心的橢圓旋轉
  • 字母 Z 由大變小覆蓋在中心的橢圓
  • 字母 Z 出現時中心的橢圓由紅色邊框圓變成實心紅色圓
  • 仔細觀察這個字母 Z 并不是普通的字符

基于上述分析接下來開始核心的代碼拆解實現,在開始前先定義一些變量方便后續使用:

:root {
  /* 主題色 */
  --mainColor: #ff483c;
  /* 字體顏色 */
  --fontColor: #fff;
  /* 字體寬度 */
  --zWidth: 260px;
  /* 中心橢圓寬高比 */
  --parentScaleY: 0.9;
  /* 子元素抵消比例 */
  --childScaleY: calc(1 / var(--parentScaleY))
}

2個小圓旋轉動畫

如果是圍繞一個正圓的旋轉那么實現就簡單很多了,但是這里是一個橢圓,純CSS應該怎么做呢?根據小編目前的了解大概有以下幾種方式都可以實現,但是對應的效果有所區別:

  • 使用 transform-style: preserve-3d;開啟3D模式,但是對應的小圓在旋轉角度存在視角消失的情況,需要額外處理
  • 使用 cubic-bezier 貝塞爾曲線執行動畫可以達到橢圓曲線的效果,但是存在動畫開始停止不可控的情況
  • 使用 rotate 0-360deg旋轉,對應子元素需要設置反向旋轉來抵消父級的旋轉帶來的影響

對比各種情況最終使用第三個方案即可滿足條件且實現成本較低,首先畫出一個橢圓的邊框效果,設置scaleY和border-radius將一個正方形變成橢圓形,核心代碼如下:

width: 570px;
  aspect-ratio: 1;
  border-radius: 50%;
  border: 10px solid var(--mainColor);
  transform: scaleY(var(--parentScaleY));

圖片圖片

然后給這個大圓添加旋轉的動畫,將整體旋轉360度,這時還沒有添加其他的元素,所以界面沒有變化。

@keyframes circle {
  0% {
    transform: scaleY(var(--parentScaleY)) rotate(0);
  }
  100% {
    transform: scaleY(var(--parentScaleY)) rotate(360deg);
  }
}

設置大圓的動畫執行相關參數。

animation: circle 1s 1 cubic-bezier(.5,.08,.52,.93) forwards;

邊框上面的兩個圈基于偽元素實現,繪制一個圓并使用定位將小圓定位于大圓的頂部兩端。然后設置動畫,這里需要注意的是需要設置反向旋轉來抵消父級的旋轉。

@keyframes mini-circle {
  0%{
    transform: rotate(0deg) scaleY(var(--childScaleY));
  }
 100%{
    transform: rotate(-360deg) scaleY(var(--childScaleY));
  }
}

這里為了方便查看將橢圓的參數調大進行對比,可以看到設置抵消后的區別一個圓被壓縮了另一個保持了正常的圓形:

未設置抵消

已設置抵消已設置抵消

這里為了更好的利用元素的使用,這里將兩個圓的繪制進一步優化到一個偽元素中,核心使用徑向漸變背景實現,在同一個 background 中繪制兩個純色圓形,兩個圓除了繪制的位置不同其他都是一樣。代碼如下:

background: 
  radial-gradient(circle 65px at 31% 24.5%,var(--mainColor) 0% 100%, transparent),
  radial-gradient(circle 65px at 72% 24.5%, var(--mainColor) 0% 100%, transparent);

到此這部分的內容基本功能完成,實際效果如下:

圖片圖片

Z 字母

接下來使用另一個偽元素實現 Z 字母的效果,仔細觀察 Z 字母的兩個拐角都是銳角效果,并不是日常字母有拐角的效果。

圖片圖片

基于當前的樣式我們可以用3段矩形拼接完成效果,上下各一段,中間一段增加旋轉角度,但是只用一個偽元素如何繪制三個矩形呢,還是用到CSS漸變,這次需要用到linear-gradient線性漸變,頂部和底部正常從上往下繪制,中間的部分需要繪制線條的旋轉角度,除開需要顯示的顏色其他部分用#0000透明色,為了方便看效果對三個矩形更換了不同的顏色,代碼如下:

background: 
  linear-gradient(#f00 25%, #0000 25%),
  linear-gradient(#0000 75%, #29eb9a 25%),
  linear-gradient(124deg, #0000 40%, #000 40% 60%, #0000 60%);

繪制的效果如下:

圖片圖片

可以看到目前的效果還不能滿足需求,兩端都出現了多余的部分,需要進一步優化將其隱藏。這時候需要用到background-size與background-position,通過background-size設置繪制內容的大小,通過設置background-position設置繪制內容的起點位置,因為設置了一定的空隙部分需要增加no-repeat不重復,增加以下代碼:

background-size: 80% var(--w), 80% var(--w), 100% 100%;
background-position: 0 0, 100% 0;
background-repeat: no-repeat;

圖片圖片

此時基本符合預期的效果,但實際設計圖左下角的銳角部分有超出正常矩形一部分。

圖片圖片

所以需要對剛剛設置的size和position部分改進,將第一個矩形左側空出16px:

background-size: 74% var(--w), 80% var(--w), 100% 100%;
background-position: 16px 0, 100% 0;

因為空出了左側一部分距離,導致整個內容不再是一個正方形,所以需要設置 scaleX 還原寬度將圖像還原到正方形。

對于剛剛設置的background相關屬性可以在代碼層進一步優化,使用簡寫將代碼合并到一行:

background:
  linear-gradient(var(--fontColor) 25%, #0000 25%) 16px 0 / 74% var(--zWidth) no-repeat,
  linear-gradient(#0000 75%, var(--fontColor) 25%) 100% 0 / 80% var(--zWidth) no-repeat,
  linear-gradient(124deg, #0000 40%, var(--fontColor) 40% 60%, #0000 60%) 0 0 / 100% 100% no-repeat;

然后繼續給這個 Z 添加動畫效果,默認設置 opacity: 0 隱藏,因為 Z 是小圓動畫執行結束才出現的,所以還需增加動畫的延遲執行時間,增加動畫相關代碼:

animation: z 0.3s 1s 1 ease-in-out forwards;
opacity: 0;

設置動畫將內容從1.5倍縮小到正常并設置旋轉角度,返抵消以及平移到Logo正中心。這里因為初始增加了1.5的放大所以設置返抵消相關參數有所不同,在設置scaleY的同時還設置了skew進一步還原尺寸。

@keyframes z {
  0% {
    transform: rotate(-45deg) scale(1.5) translate(0, -50%) skew(-13deg, 8deg);
    opacity: 1;
  }
  100% {
    transform: rotate(-42deg) scaleY(var(--childScaleY)) translate(-4%, -64%) skew(-13deg, 8deg);
    opacity: 1;
  }
}

完成后的 Z 字母動畫效果:

圖片圖片

其他細節

開始動畫時中心的橢圓以及2個圍繞的小圓都有放大的效果,所以需要對前面動畫關鍵幀的定義繼續完善。

小圓部分執行動畫的前10%也增加scale(0.5)。

@keyframes mini-circle {
  0%{
    transform: rotate(0) scale(0.5);
  }
  10%{
    transform: rotate(0) scaleY(var(--childScaleY));
  }
}

大圓執行動畫的前10%部分增加scale(0.8)。大圓部分還有一個效果是字母 Z 出現的時候中心的橢圓由邊框圓變成實心圓,所以是在動畫結束前增加對背景色的變化,代碼如下:

@keyframes circle {
  0% {
    transform: scale(0.8) rotate(0);
  }
  10% {
    transform: scaleY(var(--parentScaleY)) rotate(0);
  }
  80% {
    background-color: var(--fontColor);
  }
  100% {
    background-color: var(--mainColor);
    transform: scaleY(var(--parentScaleY)) rotate(360deg);
  }
}

最后

到此我們整個代碼實現過程就結束了,基于一個標簽實現了轉轉的Logo的繪制及動畫效果。當然這只是對其主要的功能還原,如需完整還原細節還需要進一步優化。

CSS的確是足夠強大且對很多復雜的圖形效果都能實現,這里我們主要是使用漸變背景實現圖案的繪制,除了漸變還可以使用CSS陰影也能達到類似的效果。使用CSS對比使用SVG或GIF在資源體積上有很大的提升,本次實現的Logo使用lottie的json需要100KB左右,使用GIF大約需要27KB左右,但是純CSS實現僅1KB不到即可完成,但是對于較為復雜的場景對應的代碼也提升了不少的復雜度,大家要根據實際的情況使用,

責任編輯:武曉燕 來源: 大轉轉FE
相關推薦

2022-09-06 07:02:17

棋盤布局CSS

2025-03-14 00:25:00

轉轉運營系統

2024-05-09 00:00:00

CSS標簽JavaScript

2021-09-10 09:58:35

AvlBST時間

2010-09-10 09:51:05

DIVCSS

2022-12-28 08:31:38

平臺設計應用

2010-08-16 10:37:29

DIVCSS

2023-08-10 10:13:35

轉轉短鏈平臺

2022-12-05 11:20:21

CSS漸變小技巧

2022-04-06 18:29:58

CSSJS輸入框

2010-08-31 12:42:22

CSS a標簽

2010-09-13 09:35:28

DIVCSS

2023-11-01 07:44:29

轉轉Flutter業務

2021-12-17 07:54:16

Flink SQLTable DataStream

2022-11-07 14:45:26

轉轉價格DDD

2023-12-27 19:12:42

OLAP自助分析

2011-06-27 09:47:37

HTML 5

2023-08-28 17:03:41

CSS 漸變線性漸變

2009-08-18 13:54:41

C#標簽
點贊
收藏

51CTO技術棧公眾號

青娱乐国产在线| 日本黄色www| av在线播放av| 黄页视频在线91| 久久人人爽人人| 中文字幕 自拍| 精品国产一区二区三区2021| 亚洲成av人片在线观看| 日本婷婷久久久久久久久一区二区| 青青草视频在线观看免费| 99精品美女| 日韩av在线免费观看一区| 久热精品在线播放| heyzo一区| 国产精品网站在线播放| 国产精品久久久一区二区三区| 色屁屁影院www国产高清麻豆| 久久久久久久久国产一区| 亚洲成人激情在线| 中文字幕66页| 粉嫩一区二区| 夜夜嗨av一区二区三区| 亚洲国产一区在线| 四虎影视精品成人| 美洲天堂一区二卡三卡四卡视频| 久久久久久久久91| 日本不卡一二区| 国产日产一区| 亚洲精品久久久久久久久| 欧美激情第一区| 成人黄色毛片| 黄网站色欧美视频| 在线观看17c| 9191在线| 欧美国产精品劲爆| 美日韩免费视频| 懂色av一区二区三区四区| 九九在线精品视频| 国产精品第1页| 中文字幕第15页| 亚洲免费高清| 孩xxxx性bbbb欧美| 久久久一区二区三区四区| 五月精品视频| 久久精品一偷一偷国产| 色噜噜噜噜噜噜| 久久99国产精一区二区三区| 亚洲高清一二三区| 国产欧美视频一区| 亚洲精品国产九九九| 欧美一卡二卡在线观看| 欧美日韩中文不卡| 欧美男男gaygay1069| 欧美色图第一页| 性生活免费在线观看| 色天使综合视频| 欧美中文字幕一区二区三区亚洲| 国产福利视频在线播放| 中文在线а√天堂| 精品久久久免费| 久草热视频在线观看| 成人ssswww在线播放| 亚洲成人在线免费| www.av中文字幕| av中文在线资源库| 欧美日韩视频在线| 黄色免费观看视频网站| 乱馆动漫1~6集在线观看| 岛国av在线不卡| 国产欧美在线一区| 欧美大片1688网站| 欧美三级欧美一级| 91日韩精品视频| а天堂中文最新一区二区三区| 6080yy午夜一二三区久久| 久久久精品高清| 日本精品在线播放 | 精品国内自产拍在线观看| 又色又爽的视频| 欧美 日韩 国产 一区| 久久久久久久久爱| 99精品人妻国产毛片| 久久成人久久鬼色| 国产伦精品一区二区三区免| 免费毛片在线| 亚洲天堂福利av| 日韩伦理在线免费观看| 黄色综合网址| 欧美日韩高清一区二区不卡| 波多野结衣三级视频| 色爱av综合网| 久久精品男人天堂| 日韩精品乱码久久久久久| 日韩中文字幕91| 91香蕉电影院| 日韩在线免费播放| 亚洲欧美经典视频| 妞干网在线免费视频| 香蕉成人在线| 日韩精品视频在线观看免费| 国产wwwwxxxx| 国产一区二区三区久久| 成人久久久久久久| 深夜福利免费在线观看| 亚洲天堂成人在线观看| 国产精品-区区久久久狼| 亚洲在线资源| 亚洲一区二区福利| 日本a在线观看| 捆绑调教一区二区三区| 国产一区二区久久久| 色开心亚洲综合| 欧美日韩国产精品一区二区三区四区| 九九九九九国产| 亚洲视频分类| 欧美—级a级欧美特级ar全黄| 在线观看国产区| aaa亚洲精品一二三区| 在线一区日本视频| 欧美片第1页| 亚洲第一级黄色片| 印度午夜性春猛xxx交| 日本怡春院一区二区| 国产麻豆一区二区三区在线观看| 午夜在线视频播放| 欧美性xxxx| 尤物网站在线观看| 欧美96在线丨欧| 国产日韩欧美中文| 成人免费在线视频网| 精品欧美一区二区三区| 亚洲成人福利视频| 亚洲成人一区| 国产色综合天天综合网| 国产免费av在线| 欧美视频在线观看免费| 男女一区二区三区| 亚洲国产高清一区二区三区| 成人黄色片视频网站| 黄色成人在线观看| 欧美精品一二三| 国产在线免费av| 日韩在线一二三区| 奇米视频888战线精品播放| 涩涩视频在线| 亚洲免费视频观看| 中文字幕第四页| 久久―日本道色综合久久| 成人免费aaa| 亚洲大片精品免费| 欧美中在线观看| 男女网站在线观看| 在线视频中文字幕一区二区| 最近中文字幕免费| 爽好久久久欧美精品| 日韩av高清在线播放| 欧美日韩精品免费观看视欧美高清免费大片| 亚洲电影免费观看高清完整版在线| 欧美日韩国产精品一区二区三区 | 最新版天堂资源在线| 欧美婷婷在线| 国内精品**久久毛片app| 国产极品在线观看| 亚洲精品一区久久久久久| 日韩特级黄色片| 国产网红主播福利一区二区| 亚州精品一二三区| 亚洲九九视频| 国产精品免费一区二区三区| 国产在线精彩视频| 国产亚洲欧洲高清| 在线观看一二三区| 亚洲男帅同性gay1069| 熟妇高潮一区二区| 性感少妇一区| 永久久久久久| 久久97久久97精品免视看秋霞| 欧美一级大片视频| av免费在线一区二区三区| 欧美精品丝袜中出| 久久久久无码国产精品不卡| 91麻豆国产在线观看| 91小视频网站| 国产精品vip| 欧美黑人xxxxx| 成人激情久久| 97视频在线观看播放| eeuss影院在线观看| 日韩一区二区三区在线视频| 国产免费av一区二区| 欧美国产精品一区二区三区| 四虎永久免费观看| 免费精品视频| 日本一二三区视频在线| 西野翔中文久久精品字幕| 国产日产久久高清欧美一区| 久草在线视频网站| 在线观看成人黄色| 少妇又色又爽又黄的视频| 在线精品视频小说1| 麻豆一区二区三区精品视频| 国产三级一区二区三区| 中文字幕第10页| 日本伊人色综合网| 性欧美大战久久久久久久| 久久久综合色| 久久综合狠狠综合久久综青草| 91嫩草国产线观看亚洲一区二区| 26uuu久久噜噜噜噜| 成人福利片网站| 国产亚洲精品久久久久久牛牛| 成人午夜免费福利| 欧美日韩免费一区二区三区| 男人的天堂一区| 一区二区三区日韩欧美精品| 九九热免费在线| 91视频com| 黄色av电影网站| 激情亚洲综合在线| www.99在线| 美女精品在线| 国产手机免费视频| 在线精品国产| 永久久久久久| 禁断一区二区三区在线| 国产综合色一区二区三区| 欧美h版在线观看| 成人深夜直播免费观看| 日本欧美一区| 国产精品69av| 成人美女大片| 欧美资源在线观看| 九色porny自拍视频在线播放| 欧美久久精品一级黑人c片| 在线日本中文字幕| 影音先锋欧美精品| 性xxxx视频播放免费| 欧美精品一区视频| 男人天堂一区二区| 日韩欧美国产麻豆| 精品欧美一区二区精品少妇| 91精品国产色综合久久| 亚洲天堂手机版| 欧美日韩国产一区二区三区地区| 中文字幕日本视频| 日本道免费精品一区二区三区| 91玉足脚交嫩脚丫在线播放| 偷拍日韩校园综合在线| www.国产高清| 欧美视频专区一二在线观看| 综合激情网五月| 色哟哟精品一区| 波多野结衣一二区| 欧美日韩一区高清| 国产精品爽爽久久| 91精品国产手机| 性生活黄色大片| 亚洲成人激情在线| 欧美美乳在线| 中文字幕亚洲欧美一区二区三区| 超碰免费在线观看| 久久久91精品国产一区不卡| 性欧美猛交videos| 国内精品久久久久久久久| 国产精品yjizz视频网| 茄子视频成人在线| 精品乱码一区二区三区四区| 91精品免费视频| 都市激情亚洲| 欧美一区二区影视| 51精产品一区一区三区| 日本免费成人网| 亚洲综合另类| 第四色婷婷基地| 盗摄精品av一区二区三区| 人妻精品久久久久中文字幕| 欧美国产亚洲另类动漫| 9999热视频| 日韩欧美aⅴ综合网站发布| 伊人免费在线观看高清版| 欧美一级电影网站| 亚洲日本在线播放| 色悠悠国产精品| 黑人极品ⅴideos精品欧美棵| 57pao国产精品一区| 国外成人福利视频| 国产成人精品免费视频大全最热| 国产精品一区二区99| 青青草免费在线视频观看| 国产日韩1区| 亚洲综合av在线播放| 成人妖精视频yjsp地址| 老头老太做爰xxx视频| 一区二区三区在线观看动漫 | 欧美在线免费播放| 成人h动漫精品一区二区无码 | 欧美精品日韩一区| 午夜视频www| 久久综合久中文字幕青草| 特黄毛片在线观看| 亚洲综合日韩在线| 精品福利久久久| 蜜臀av无码一区二区三区| 美女视频网站黄色亚洲| 网站免费在线观看| 一区二区在线免费观看| 91视频久久久| 日韩精品黄色网| a免费在线观看| 国产精品久久久久不卡| 99久久婷婷国产综合精品青牛牛| 日韩欧美亚洲日产国| 亚洲精品乱码| 特种兵之深入敌后| 中文字幕av免费专区久久| 日本一级一片免费视频| 日韩一区二区免费在线电影| jizzjizz在线观看| 国产成人一区二区在线| 欧美一级二级三级视频| 少妇一晚三次一区二区三区| 免费在线看一区| 怡红院一区二区三区| 偷拍与自拍一区| 色噜噜一区二区三区| 欧美黄色片视频| 国产精品va视频| 一区二区三区四区不卡| 日韩精品色哟哟| 成人午夜剧场视频网站| 激情懂色av一区av二区av| 欧美熟妇乱码在线一区| 欧美国产中文字幕| 欧美1区2区3| 狠狠噜天天噜日日噜| 国产米奇在线777精品观看| 日日噜噜夜夜狠狠久久波多野| 欧美性受xxxx| 在线激情网站| 国产精品人成电影在线观看| 国产精品一在线观看| 毛葺葺老太做受视频| 久久色成人在线| 中文字幕 国产精品| 国产亚洲精品久久| 日韩精品麻豆| 亚洲一区二区三区加勒比| 免费在线观看日韩欧美| 国产91在线播放九色| 精品视频一区二区三区免费| 99riav在线| 91精品在线观| 欧美jjzz| a级一a一级在线观看| 欧美午夜久久久| 国产亚洲依依| 国产拍精品一二三| 欧美成人精品| 无码av免费精品一区二区三区| 亚洲一区二区综合| 天天爱天天干天天操| 日本精品视频在线| 成人在线亚洲| 亚洲制服在线观看| 亚洲国产成人高清精品| 在线观看xxx| 国产精品丝袜视频| 综合天天久久| 亚洲av无码一区二区三区网址| 色一区在线观看| 美女隐私在线观看| av一区观看| 葵司免费一区二区三区四区五区| 国产一二三四区在线| 欧美一区二区三区在线电影| 成人爽a毛片免费啪啪动漫| 久久青青草综合| 麻豆精品视频在线| 九九免费精品视频| 亚洲美女免费精品视频在线观看| 国产精品无码久久久久| 亚洲色欲久久久综合网东京热| 91日韩一区二区三区| 中文亚洲av片在线观看| 欧美黑人一级爽快片淫片高清| 伊人成综合网yiren22| 超碰人人草人人| 婷婷六月综合网| 久热国产在线| 久久精品一二三区| 九一久久久久久| 亚洲高清毛片一区二区| 久久精品一区中文字幕| 日韩电影不卡一区| 日本美女视频一区| 一本久久a久久精品亚洲| 综合久久2019| 日本亚洲导航| 成人av资源网站| 国产又黄又粗又硬|