国产精品嫩草99av在线_一区在线视频观看_欧美高清一区_欧美 日韩 国产 一区_99精品欧美一区二区三区_久久大香伊蕉在人线观看热2_一色屋精品视频在线观看网站_在线亚洲国产精品网站_亚洲区一区二区三区_你懂的视频一区二区

當前位置:首頁 > 科技  > 軟件

CSS單標簽實現轉轉logo

來源: 責編: 時間:2023-08-05 11:44:38 5127觀看
導讀轉轉品牌升級后更新了全新的Logo,今天我們用純CSS來實現轉轉的新Logo,為了有一定的挑戰性,這里我們只使用一個標簽實現,將最大化的使用CSS能力完成Logo的繪制與動畫效果。新logo保留了原本logo里轉轉熊的輪廓,兩個熊耳是兩

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

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

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

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

基于上述分析接下來開始核心的代碼拆解實現,在開始前先定義一些變量方便后續使用:vEx28資訊網——每日最新資訊28at.com

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

2個小圓旋轉動畫

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

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

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

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

圖片圖片vEx28資訊網——每日最新資訊28at.com

然后給這個大圓添加旋轉的動畫,將整體旋轉360度,這時還沒有添加其他的元素,所以界面沒有變化。vEx28資訊網——每日最新資訊28at.com

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

設置大圓的動畫執行相關參數。vEx28資訊網——每日最新資訊28at.com

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

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

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

這里為了方便查看將橢圓的參數調大進行對比,可以看到設置抵消后的區別一個圓被壓縮了另一個保持了正常的圓形:vEx28資訊網——每日最新資訊28at.com

未設置抵消vEx28資訊網——每日最新資訊28at.com

已設置抵消已設置抵消vEx28資訊網——每日最新資訊28at.com

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

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);

到此這部分的內容基本功能完成,實際效果如下:vEx28資訊網——每日最新資訊28at.com

圖片圖片vEx28資訊網——每日最新資訊28at.com

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

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

繪制的效果如下:vEx28資訊網——每日最新資訊28at.com

圖片圖片vEx28資訊網——每日最新資訊28at.com

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

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

圖片圖片vEx28資訊網——每日最新資訊28at.com

此時基本符合預期的效果,但實際設計圖左下角的銳角部分有超出正常矩形一部分。vEx28資訊網——每日最新資訊28at.com

圖片圖片vEx28資訊網——每日最新資訊28at.com

所以需要對剛剛設置的size和position部分改進,將第一個矩形左側空出16px:vEx28資訊網——每日最新資訊28at.com

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

因為空出了左側一部分距離,導致整個內容不再是一個正方形,所以需要設置 scaleX 還原寬度將圖像還原到正方形。vEx28資訊網——每日最新資訊28at.com

對于剛剛設置的background相關屬性可以在代碼層進一步優化,使用簡寫將代碼合并到一行:vEx28資訊網——每日最新資訊28at.com

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 是小圓動畫執行結束才出現的,所以還需增加動畫的延遲執行時間,增加動畫相關代碼:vEx28資訊網——每日最新資訊28at.com

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

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

@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 字母動畫效果:vEx28資訊網——每日最新資訊28at.com

圖片圖片vEx28資訊網——每日最新資訊28at.com

其他細節

開始動畫時中心的橢圓以及2個圍繞的小圓都有放大的效果,所以需要對前面動畫關鍵幀的定義繼續完善。vEx28資訊網——每日最新資訊28at.com

小圓部分執行動畫的前10%也增加scale(0.5)。vEx28資訊網——每日最新資訊28at.com

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

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

@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的繪制及動畫效果。當然這只是對其主要的功能還原,如需完整還原細節還需要進一步優化。vEx28資訊網——每日最新資訊28at.com

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

本文鏈接:http://www.rrqrq.com/showinfo-26-82-0.htmlCSS單標簽實現轉轉logo

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 2023 年的 Node.js 生態系統

下一篇: Automa-通過連接塊來自動化你的瀏覽器

標簽:
  • 熱門焦點
Top 国产精品嫩草99av在线_一区在线视频观看_欧美高清一区_欧美 日韩 国产 一区_99精品欧美一区二区三区_久久大香伊蕉在人线观看热2_一色屋精品视频在线观看网站_在线亚洲国产精品网站_亚洲区一区二区三区_你懂的视频一区二区
99国产精品久久久久久久| 天堂一区二区在线| 日韩极品在线观看| 夜久久久久久| 亚洲激情图片一区| 亚洲精品字幕| 亚洲免费大片在线观看| 94色蜜桃网一区二区三区| 日韩欧美亚洲国产另类| 国产成人综合亚洲网站| 8v天堂国产在线一区二区| 精品无人码麻豆乱码1区2区 | 国产美女精品人人做人人爽| 久久婷婷激情| 日韩av成人高清| 欧美午夜理伦三级在线观看| 久久99精品久久久久久| 在线成人小视频| 国产精品一区二区在线看| 日韩一区二区三区精品视频| 国产jizzjizz一区二区| 欧美不卡一二三| 91丨九色丨国产丨porny| 国产欧美日韩视频在线观看| 欧美视频官网| 亚洲精品视频观看| 国产视频一区三区| 亚洲成人你懂的| 玖玖精品视频| 国产制服丝袜一区| 精品久久一区二区三区| 欧美成人国产| 亚洲男人都懂的| 久久精品盗摄| 激情文学综合插| 欧美一级专区免费大片| 99久久精品免费看国产免费软件| 久久精品一区二区三区av| 激情综合亚洲| 天天综合色天天综合色h| 欧美亚洲图片小说| 成人激情开心网| 国产精品美女一区二区在线观看| 国产精品日本欧美一区二区三区| 日韩av一区二| 日韩一卡二卡三卡四卡| 欧美日韩综合另类| 亚洲成人综合视频| 欧美日韩在线三区| 91在线看国产| 亚洲欧美日韩人成在线播放| 日本道免费精品一区二区三区| 国产美女在线观看一区| 欧美激情一区三区| 久久狠狠久久综合桃花| 激情文学综合插| ww亚洲ww在线观看国产| 在线精品亚洲一区二区| 视频一区国产视频| 日韩欧美电影一二三| 韩日视频一区| 毛片基地黄久久久久久天堂| 欧美不卡视频一区| 一区二区免费在线视频| 理论电影国产精品| 精品裸体舞一区二区三区| 亚洲欧洲一区二区在线观看| 久久国产麻豆精品| 久久精品水蜜桃av综合天堂| 中文在线一区| 国产麻豆精品在线观看| 久久久久久久久免费| 欧美一级网站| 成人一级黄色片| 一区二区三区高清| 欧美伦理视频网站| 永久91嫩草亚洲精品人人| 免费高清在线一区| 亚洲国产激情av| 色综合激情五月| 北条麻妃一区二区三区| 一区二区免费在线播放| 91麻豆精品国产91久久久更新时间| 国产精品99免费看| 精品制服美女久久| 亚洲欧洲精品成人久久奇米网| 欧美日韩国产三级| 影音欧美亚洲| 国产高清精品网站| 亚洲一区二区视频在线观看| 欧美成人三级在线| 欧美专区在线| 91免费国产在线| 欧美aaaaaa午夜精品| 亚洲国产高清不卡| 欧美日韩一区二区三区四区| 在线精品一区二区| 国产91精品露脸国语对白| 亚洲综合自拍偷拍| 久久影院午夜片一区| 日本久久一区二区三区| 午夜久久资源| 国产伦精品一区二区三区视频青涩 | 无吗不卡中文字幕| 精品久久人人做人人爽| 亚洲在线播放电影| 99国产精品久久| 另类小说一区二区三区| 亚洲天堂久久久久久久| 日韩精品一区二区三区在线观看 | 久久久久高清| 国产一区在线免费观看| 狠狠久久亚洲欧美| 亚洲一区二区三区四区的| 精品成人一区二区| 欧美性大战久久久| 亚洲欧美精品在线观看| 91丨九色丨黑人外教| 韩国午夜理伦三级不卡影院| 亚洲永久精品大片| 欧美韩国日本一区| 日韩欧美国产不卡| 欧美在线小视频| 国产色综合网| 欧美日韩无遮挡| 床上的激情91.| 卡一卡二国产精品| 亚洲一二三级电影| 国产精品美日韩| 久久综合狠狠综合久久综合88 | 激情成人综合| 99久久精品免费精品国产| 久久国产精品第一页| 亚洲大片免费看| 亚洲欧美区自拍先锋| 中文字幕免费不卡| 精品国产免费人成电影在线观看四季| 欧美午夜在线观看| 快she精品国产999| 一区二区三区四区五区精品视频 | 一本大道av一区二区在线播放| 亚洲精品久久| 欧美激情1区2区| 北条麻妃一区二区三区| 国产精品资源在线| 韩国一区二区视频| 玖玖九九国产精品| 美腿丝袜亚洲综合| 日韩av电影一区| 日韩中文欧美在线| 午夜久久久久久久久久一区二区| 亚洲精品乱码久久久久久久久| 国产精品久久久久久久蜜臀| 欧美激情在线看| 欧美国产日韩一二三区| 久久综合九色综合欧美就去吻| 日韩免费观看高清完整版在线观看| 欧美日韩精品二区第二页| 欧美午夜在线一二页| 欧美日韩中字一区| 欧美裸体一区二区三区| 欧美蜜桃一区二区三区| 欧美丰满高潮xxxx喷水动漫| 欧美日韩久久一区| 88在线观看91蜜桃国自产| 4438成人网| 日韩一级精品视频在线观看| 日韩欧美激情一区| 欧美变态口味重另类| 久久久影院官网| 久久天堂av综合合色蜜桃网| 久久久一区二区三区捆绑**| 国产日韩欧美综合一区| 亚洲国产激情av| 国产精品福利一区二区三区| 亚洲天堂av一区| 一二三四区精品视频| 亚洲自拍偷拍图区| 视频在线观看91| 久久se精品一区精品二区| 韩国女主播成人在线观看| 国产成人在线影院| www.欧美色图| 欧美日韩国产综合视频在线| 欧美三级视频| 一区二区视频在线观看| 国产亚洲精品久久久久婷婷瑜伽| 六月婷婷一区| 欧美日韩亚洲另类| 日韩一级成人av| 国产午夜亚洲精品午夜鲁丝片| 国产精品久久一级| 亚洲国产视频网站| 蜜臂av日日欢夜夜爽一区| 国产东北露脸精品视频| 91美女视频网站| 亚洲黑丝在线| 色哟哟精品一区| 日韩午夜在线观看| 国产精品网站导航|