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

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

CSS單標簽實現轉轉logo

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

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

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

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

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

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

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

2個小圓旋轉動畫

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

對于剛剛設置的background相關屬性可以在代碼層進一步優化,使用簡寫將代碼合并到一行:PhS28資訊網——每日最新資訊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 是小圓動畫執行結束才出現的,所以還需增加動畫的延遲執行時間,增加動畫相關代碼:PhS28資訊網——每日最新資訊28at.com

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

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

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

其他細節

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

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

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

大圓執行動畫的前10%部分增加scale(0.8)。大圓部分還有一個效果是字母 Z 出現的時候中心的橢圓由邊框圓變成實心圓,所以是在動畫結束前增加對背景色的變化,代碼如下:PhS28資訊網——每日最新資訊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的繪制及動畫效果。當然這只是對其主要的功能還原,如需完整還原細節還需要進一步優化。PhS28資訊網——每日最新資訊28at.com

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

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

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

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

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

標簽:
  • 熱門焦點
  • K60 Pro官方停產 第三方瞬間漲價

    雖然沒有官方宣布,但Redmi的一些高管也已經透露了,Redmi K60 Pro已經停產且不會補貨,這一切都是為了即將到來的K60 Ultra鋪路,屬于廠家的正常操作。但有意思的是該機在停產之后
  • 2023 年的 Node.js 生態系統

    隨著技術的不斷演進和創新,Node.js 在 2023 年達到了一個新的高度。Node.js 擁有一個龐大的生態系統,可以幫助開發人員更快地實現復雜的應用。本文就來看看 Node.js 最新的生
  • 讓我們一起聊聊文件的操作

    文件【1】文件是什么?文件是保存數據的地方,是數據源的一種,比如大家經常使用的word文檔、txt文件、excel文件、jpg文件...都是文件。文件最主要的作用就是保存數據,它既可以保
  • 一篇文章帶你了解 CSS 屬性選擇器

    屬性選擇器對帶有指定屬性的 HTML 元素設置樣式。可以為擁有指定屬性的 HTML 元素設置樣式,而不僅限于 class 和 id 屬性。一、了解屬性選擇器CSS屬性選擇器提供了一種簡單而
  • 使用Webdriver-manager解決瀏覽器與驅動不匹配所帶來自動化無法執行的問題

    1、前言在我們使用 Selenium 進行 UI 自動化測試時,常常會因為瀏覽器驅動與瀏覽器版本不匹配,而導致自動化測試無法執行,需要手動去下載對應的驅動版本,并替換原有的驅動,可能還
  • 微軟邀請 Microsoft 365 商業用戶,測試視頻編輯器 Clipchamp

    8 月 1 日消息,微軟近日宣布即將面向 Microsoft 365 商業用戶,開放 Clipchamp 應用,邀請用戶通過該應用來編輯視頻。微軟于 2021 年收購 Clipchamp,隨后開始逐步整合到 Microsof
  • 每天一道面試題-CPU偽共享

    前言:了不起:又到了每天一到面試題的時候了!學弟,最近學習的怎么樣啊 了不起學弟:最近學習的還不錯,每天都在學習,每天都在進步! 了不起:那你最近學習的什么呢? 了不起學弟:最近在學習C
  • 當家的盒馬,加速謀生

    來源 | 價值星球Planet作者 | 歸去來自己“當家”的盒馬,開始加速謀生了。據盒馬官微消息,盒馬計劃今年開放生鮮供應鏈,將其生鮮商品送往食堂。目前,盒馬在上海已經與
  • “買真退假” 這種“羊毛”不能薅

    □ 法治日報 記者 王春   □ 本報通訊員 胡佳麗  2020年初,還在上大學的小東加入了一個大學生兼職QQ群。群主“七王”在群里介紹一些刷單賺
Top 国产精品嫩草99av在线_一区在线视频观看_欧美高清一区_欧美 日韩 国产 一区_99精品欧美一区二区三区_久久大香伊蕉在人线观看热2_一色屋精品视频在线观看网站_在线亚洲国产精品网站_亚洲区一区二区三区_你懂的视频一区二区
日韩欧美一二三区| 亚洲成人在线观看视频| 欧美日韩dvd在线观看| 国产精品日韩高清| 亚洲黄网站黄| 日韩天堂av| 国产一级一区二区| 一区二区日韩免费看| 国产亚洲毛片| 久久精品导航| 91黄色激情网站| 欧美日韩日日骚| 这里只有精品视频在线观看| 欧美区视频在线观看| 欧美日韩精品一区二区三区| 51精品久久久久久久蜜臀| 91精品国产一区二区三区蜜臀| 欧美精品在线一区二区| 欧美一二三四区在线| 久久亚洲综合色一区二区三区| 精品女同一区二区| 国产嫩草影院久久久久| 国产精品对白交换视频| 亚洲精品国产高清久久伦理二区| 亚洲最大的成人av| 免费精品视频在线| 东方欧美亚洲色图在线| 欧美+日本+国产+在线a∨观看| 亚洲性色视频| 老司机午夜精品视频| 91精品国产黑色紧身裤美女| 2023国产精品自拍| 亚洲精品国久久99热| 男女视频一区二区| av亚洲精华国产精华| 亚洲精品欧洲精品| 欧美日韩国产精选| 久久嫩草精品久久久精品一| |精品福利一区二区三区| 午夜精品久久久久| 成人国产亚洲欧美成人综合网| 欧美日韩一区二区视频在线观看| 一二三区精品| 91精品福利在线一区二区三区 | 亚洲午夜久久久久中文字幕久| 日本午夜精品视频在线观看| 福利一区二区在线观看| 9国产精品视频| 91精品免费在线观看| 国产精品久久久久久妇女6080| 日韩电影在线一区| 99re这里只有精品首页| 久久久久久一区| 久久精品人人做| 日韩成人精品在线观看| caoporen国产精品视频| 久久精品成人一区二区三区蜜臀| 精品久久国产97色综合| 午夜久久久影院| 91在线国产福利| 久久久精品动漫| 国产网站一区二区三区| 美女高潮久久久| 尤妮丝一区二区裸体视频| 在线成人av网站| 亚洲电影第三页| 欧美va天堂| 欧美精品日韩精品| 亚洲在线视频免费观看| 欧美一区二区三区免费看| 91福利视频网站| 亚洲欧美日韩国产综合在线| 国产jizzjizz一区二区| 色婷婷综合久久久久中文| 亚洲欧美在线另类| 不卡的电影网站| 欧美日韩国产高清一区二区| 亚洲精品一卡二卡| 欧美另类女人| 精品国产一区二区三区久久久蜜月| 天天综合网 天天综合色| 91久久视频| 国产精品久久午夜夜伦鲁鲁| 成人97人人超碰人人99| 欧美日韩国产小视频在线观看| 亚洲国产精品久久艾草纯爱| 亚洲性色视频| 国产欧美精品一区二区三区四区 | 噜噜噜91成人网| 亚洲视频一区二区免费在线观看| 不卡视频在线看| 日韩视频国产视频| 激情成人综合网| 欧美伊人精品成人久久综合97| 一区二区三区久久久| 亚洲精品一区二区三区樱花 | 老汉av免费一区二区三区 | 亚洲午夜影视影院在线观看| 亚洲午夜极品| 综合分类小说区另类春色亚洲小说欧美| 国产**成人网毛片九色| 日韩视频一区二区| 丁香婷婷综合色啪| 欧美成人欧美edvon| 成人免费视频一区| 精品少妇一区二区三区日产乱码 | 欧美日韩精品一区| 国产精品拍天天在线| 色综合欧美在线| 国产欧美日韩激情| 国产尤物精品| 美腿丝袜在线亚洲一区| 久久国产精品亚洲va麻豆| 亚洲一区二区三区在线看| 国产免费成人| 喷水一区二区三区| 91精品国产高清一区二区三区 | 亚洲最大成人网4388xx| 久久综合一区二区三区| 免费看精品久久片| 欧美一级高清片在线观看| 不卡一区在线观看| 国产精品欧美一区喷水| 99国产精品久久久久久久| 夜夜嗨av一区二区三区| 欧美综合在线视频| 成人免费视频网站在线观看| 欧美经典一区二区| 国产精品免费区二区三区观看| 午夜视频一区二区| 91精品国产免费久久综合| 女同一区二区| 亚洲妇熟xx妇色黄| 91精品欧美久久久久久动漫| 欧美精品三级| 丝袜a∨在线一区二区三区不卡| 欧美三级日本三级少妇99| 成人av在线一区二区三区| 亚洲欧美日韩在线不卡| 欧美三级中文字幕| 91性感美女视频| 亚洲韩国一区二区三区| 91精品国产综合久久蜜臀| 国产精品成人观看视频免费| 婷婷一区二区三区| 久久久久亚洲综合| 老司机一区二区三区| 成人激情午夜影院| 夜夜操天天操亚洲| 欧美tickling挠脚心丨vk| 国产情侣一区| 成人av在线一区二区| 亚洲一区二区三区爽爽爽爽爽 | 免费观看日韩av| 国产欧美日韩视频在线观看| 久久精品日韩欧美| 91亚洲精品久久久蜜桃| 天堂一区二区在线| 国产精品你懂的| 欧美日韩日日摸| 国产欧美一区二区色老头 | 日韩一区二区三| 免费在线成人av| 91丨九色丨国产丨porny| 亚瑟在线精品视频| 国产精品久线在线观看| 欧美区一区二区三区| 国产亚洲精品久久飘花| 不卡高清视频专区| 麻豆视频观看网址久久| 亚洲美女精品一区| 久久综合九色综合97_久久久| 色视频欧美一区二区三区| 影音先锋亚洲一区| 成人短视频下载 | 在线观看日韩av先锋影音电影院| 欧美日韩一区二区三区在线观看免 | 69久久夜色精品国产69蝌蚪网| 一区二区三区你懂的| 女女同性女同一区二区三区91| 久久99精品国产91久久来源| 亚洲高清免费视频| 国产精品不卡视频| 久久久99精品久久| 欧美一区二区国产| 欧美日韩黄色一区二区| 久久久久看片| 国产精品美女xx| 伊人久久av导航| 欧美91大片| 新67194成人永久网站| 国产综合欧美在线看| 欧美777四色影| 色综合天天视频在线观看| 成人在线视频首页| 豆国产96在线|亚洲| 精品一区二区在线看| 美女被吸乳得到大胸91| 日韩av不卡在线观看| 奇米777欧美一区二区|