日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當(dāng)前位置:首頁(yè) > 科技  > 軟件

CSS單標(biāo)簽實(shí)現(xiàn)轉(zhuǎn)轉(zhuǎn)logo

來(lái)源: 責(zé)編: 時(shí)間:2023-08-05 11:44:38 5387觀看
導(dǎo)讀轉(zhuǎn)轉(zhuǎn)品牌升級(jí)后更新了全新的Logo,今天我們用純CSS來(lái)實(shí)現(xiàn)轉(zhuǎn)轉(zhuǎn)的新Logo,為了有一定的挑戰(zhàn)性,這里我們只使用一個(gè)標(biāo)簽實(shí)現(xiàn),將最大化的使用CSS能力完成Logo的繪制與動(dòng)畫效果。新logo保留了原本logo里轉(zhuǎn)轉(zhuǎn)熊的輪廓,兩個(gè)熊耳是兩

轉(zhuǎn)轉(zhuǎn)品牌升級(jí)后更新了全新的Logo,今天我們用純CSS來(lái)實(shí)現(xiàn)轉(zhuǎn)轉(zhuǎn)的新Logo,為了有一定的挑戰(zhàn)性,這里我們只使用一個(gè)標(biāo)簽實(shí)現(xiàn),將最大化的使用CSS能力完成Logo的繪制與動(dòng)畫效果。Pff28資訊網(wǎng)——每日最新資訊28at.com

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

以上是我們要還原的Logo效果動(dòng)圖,現(xiàn)階段使用方式主要是gif和lottie SVG兩種方式。因?yàn)槲覀兊哪康氖鞘褂脝螛?biāo)簽實(shí)現(xiàn)所有的功能點(diǎn),對(duì)于一些細(xì)節(jié)部分有所取舍,并不是百分百還原,也并不代表使用CSS的成本和效果是最好的,僅表達(dá)CSS的強(qiáng)大能力。接下來(lái)分析我們要核心實(shí)現(xiàn)的功能點(diǎn):Pff28資訊網(wǎng)——每日最新資訊28at.com

  • 開始動(dòng)畫時(shí)中心的大圓以及2個(gè)圍繞的小圓都有放大的效果
  • 動(dòng)畫開始后2個(gè)小圓圍繞中心的橢圓旋轉(zhuǎn)
  • 字母 Z 由大變小覆蓋在中心的橢圓
  • 字母 Z 出現(xiàn)時(shí)中心的橢圓由紅色邊框圓變成實(shí)心紅色圓
  • 仔細(xì)觀察這個(gè)字母 Z 并不是普通的字符

基于上述分析接下來(lái)開始核心的代碼拆解實(shí)現(xiàn),在開始前先定義一些變量方便后續(xù)使用:Pff28資訊網(wǎng)——每日最新資訊28at.com

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

2個(gè)小圓旋轉(zhuǎn)動(dòng)畫

如果是圍繞一個(gè)正圓的旋轉(zhuǎn)那么實(shí)現(xiàn)就簡(jiǎn)單很多了,但是這里是一個(gè)橢圓,純CSS應(yīng)該怎么做呢?根據(jù)小編目前的了解大概有以下幾種方式都可以實(shí)現(xiàn),但是對(duì)應(yīng)的效果有所區(qū)別:Pff28資訊網(wǎng)——每日最新資訊28at.com

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

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

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

圖片圖片Pff28資訊網(wǎng)——每日最新資訊28at.com

然后給這個(gè)大圓添加旋轉(zhuǎn)的動(dòng)畫,將整體旋轉(zhuǎn)360度,這時(shí)還沒有添加其他的元素,所以界面沒有變化。Pff28資訊網(wǎng)——每日最新資訊28at.com

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

設(shè)置大圓的動(dòng)畫執(zhí)行相關(guān)參數(shù)。Pff28資訊網(wǎng)——每日最新資訊28at.com

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

邊框上面的兩個(gè)圈基于偽元素實(shí)現(xiàn),繪制一個(gè)圓并使用定位將小圓定位于大圓的頂部?jī)啥恕H缓笤O(shè)置動(dòng)畫,這里需要注意的是需要設(shè)置反向旋轉(zhuǎn)來(lái)抵消父級(jí)的旋轉(zhuǎn)。Pff28資訊網(wǎng)——每日最新資訊28at.com

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

這里為了方便查看將橢圓的參數(shù)調(diào)大進(jìn)行對(duì)比,可以看到設(shè)置抵消后的區(qū)別一個(gè)圓被壓縮了另一個(gè)保持了正常的圓形:Pff28資訊網(wǎng)——每日最新資訊28at.com

未設(shè)置抵消Pff28資訊網(wǎng)——每日最新資訊28at.com

已設(shè)置抵消已設(shè)置抵消Pff28資訊網(wǎng)——每日最新資訊28at.com

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

到此這部分的內(nèi)容基本功能完成,實(shí)際效果如下:Pff28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片Pff28資訊網(wǎng)——每日最新資訊28at.com

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

繪制的效果如下:Pff28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片Pff28資訊網(wǎng)——每日最新資訊28at.com

可以看到目前的效果還不能滿足需求,兩端都出現(xiàn)了多余的部分,需要進(jìn)一步優(yōu)化將其隱藏。這時(shí)候需要用到background-size與background-position,通過background-size設(shè)置繪制內(nèi)容的大小,通過設(shè)置background-position設(shè)置繪制內(nèi)容的起點(diǎn)位置,因?yàn)樵O(shè)置了一定的空隙部分需要增加no-repeat不重復(fù),增加以下代碼:Pff28資訊網(wǎng)——每日最新資訊28at.com

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

圖片圖片Pff28資訊網(wǎng)——每日最新資訊28at.com

此時(shí)基本符合預(yù)期的效果,但實(shí)際設(shè)計(jì)圖左下角的銳角部分有超出正常矩形一部分。Pff28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片Pff28資訊網(wǎng)——每日最新資訊28at.com

所以需要對(duì)剛剛設(shè)置的size和position部分改進(jìn),將第一個(gè)矩形左側(cè)空出16px:Pff28資訊網(wǎng)——每日最新資訊28at.com

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

因?yàn)榭粘隽俗髠?cè)一部分距離,導(dǎo)致整個(gè)內(nèi)容不再是一個(gè)正方形,所以需要設(shè)置 scaleX 還原寬度將圖像還原到正方形。Pff28資訊網(wǎng)——每日最新資訊28at.com

對(duì)于剛剛設(shè)置的background相關(guān)屬性可以在代碼層進(jìn)一步優(yōu)化,使用簡(jiǎn)寫將代碼合并到一行:Pff28資訊網(wǎng)——每日最新資訊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;

然后繼續(xù)給這個(gè) Z 添加動(dòng)畫效果,默認(rèn)設(shè)置 opacity: 0 隱藏,因?yàn)?Z 是小圓動(dòng)畫執(zhí)行結(jié)束才出現(xiàn)的,所以還需增加動(dòng)畫的延遲執(zhí)行時(shí)間,增加動(dòng)畫相關(guān)代碼:Pff28資訊網(wǎng)——每日最新資訊28at.com

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

設(shè)置動(dòng)畫將內(nèi)容從1.5倍縮小到正常并設(shè)置旋轉(zhuǎn)角度,返抵消以及平移到Logo正中心。這里因?yàn)槌跏荚黾恿?.5的放大所以設(shè)置返抵消相關(guān)參數(shù)有所不同,在設(shè)置scaleY的同時(shí)還設(shè)置了skew進(jìn)一步還原尺寸。Pff28資訊網(wǎng)——每日最新資訊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 字母動(dòng)畫效果:Pff28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片Pff28資訊網(wǎng)——每日最新資訊28at.com

其他細(xì)節(jié)

開始動(dòng)畫時(shí)中心的橢圓以及2個(gè)圍繞的小圓都有放大的效果,所以需要對(duì)前面動(dòng)畫關(guān)鍵幀的定義繼續(xù)完善。Pff28資訊網(wǎng)——每日最新資訊28at.com

小圓部分執(zhí)行動(dòng)畫的前10%也增加scale(0.5)。Pff28資訊網(wǎng)——每日最新資訊28at.com

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

大圓執(zhí)行動(dòng)畫的前10%部分增加scale(0.8)。大圓部分還有一個(gè)效果是字母 Z 出現(xiàn)的時(shí)候中心的橢圓由邊框圓變成實(shí)心圓,所以是在動(dòng)畫結(jié)束前增加對(duì)背景色的變化,代碼如下:Pff28資訊網(wǎng)——每日最新資訊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);  }}

最后

到此我們整個(gè)代碼實(shí)現(xiàn)過程就結(jié)束了,基于一個(gè)標(biāo)簽實(shí)現(xiàn)了轉(zhuǎn)轉(zhuǎn)的Logo的繪制及動(dòng)畫效果。當(dāng)然這只是對(duì)其主要的功能還原,如需完整還原細(xì)節(jié)還需要進(jìn)一步優(yōu)化。Pff28資訊網(wǎng)——每日最新資訊28at.com

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

本文鏈接:http://m.www897cc.com/showinfo-26-82-0.htmlCSS單標(biāo)簽實(shí)現(xiàn)轉(zhuǎn)轉(zhuǎn)logo

聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。郵件:2376512515@qq.com

上一篇: 2023 年的 Node.js 生態(tài)系統(tǒng)

下一篇: Automa-通過連接塊來(lái)自動(dòng)化你的瀏覽器

標(biāo)簽:
  • 熱門焦點(diǎn)
Top 日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不
亚洲免费精彩视频| 狠狠久久综合婷婷不卡| 欧美大片一区二区三区| 欧美精品成人在线| 国产精品日韩精品| 一区视频在线| 亚洲乱码国产乱码精品精可以看 | 亚洲第一福利社区| 99av国产精品欲麻豆| 亚洲欧美一区二区三区在线| 久久成人免费日本黄色| 欧美成年人网站| 国产精品美女| 亚洲风情亚aⅴ在线发布| 在线视频欧美日韩精品| 欧美综合国产精品久久丁香| 欧美69视频| 欧美日韩国产成人在线| 国产午夜精品久久| 亚洲精品一区二区三区蜜桃久| 亚洲欧美大片| 男女视频一区二区| 国产精品久久久一区麻豆最新章节| 国产一区999| 99这里只有精品| 久久久久久亚洲精品中文字幕| 欧美日韩一卡二卡| 极品裸体白嫩激情啪啪国产精品| 一区二区免费看| 麻豆精品视频在线观看视频| 国产精品乱子乱xxxx| 亚洲激情在线播放| 久久精品91| 欧美涩涩视频| 最新国产の精品合集bt伙计| 久久国产精品网站| 国产精品成人一区二区三区夜夜夜 | 午夜一区在线| 欧美日韩亚洲在线| 亚洲国产成人在线| 久久国产黑丝| 国产精品不卡在线| 亚洲精品中文字幕在线| 久久久之久亚州精品露出| 欧美午夜精品久久久久久人妖| **网站欧美大片在线观看| 性久久久久久久久| 欧美性色综合| 亚洲伦理自拍| 欧美 日韩 国产精品免费观看| 国产一区二区精品久久99| 亚洲小说欧美另类婷婷| 欧美黄色影院| 在线欧美福利| 久久精品国产一区二区电影| 国产精品久久久久天堂| aⅴ色国产欧美| 欧美激情欧美狂野欧美精品| 一区二区在线视频观看| 久久电影一区| 国产欧美精品一区aⅴ影院| 亚洲视频自拍偷拍| 欧美日韩国产系列| 亚洲精品美女91| 老巨人导航500精品| 国产在线视频欧美一区二区三区| 亚洲女与黑人做爰| 欧美视频日韩| 一本一本久久a久久精品牛牛影视| 欧美成人第一页| 亚洲韩国青草视频| 麻豆视频一区二区| 亚洲第一偷拍| 免费久久99精品国产| **网站欧美大片在线观看| 久久躁狠狠躁夜夜爽| 一区视频在线播放| 久久手机免费观看| 激情欧美国产欧美| 久久男女视频| 激情久久久久久久| 久久午夜电影| 亚洲成色777777女色窝| 免费看精品久久片| 91久久中文字幕| 欧美激情一二区| 亚洲精选在线| 欧美日韩在线亚洲一区蜜芽| 亚洲一二三区精品| 国产精品国产三级国产普通话三级 | 亚洲精品乱码视频| 欧美日本精品| 在线中文字幕日韩| 国产精品女主播| 欧美一二区视频| 国产亚洲激情| 久久综合九色综合欧美狠狠| 亚洲国产精品99久久久久久久久| 一区二区三区亚洲| 麻豆精品在线视频| 国产欧美日韩在线播放| 欧美亚洲综合久久| 国产午夜精品视频免费不卡69堂| 欧美一区永久视频免费观看| 国产亚洲一区在线播放| 久久久亚洲精品一区二区三区 | 亚洲一区二区三区久久| 国产精品视频免费一区| 久久精品成人欧美大片古装| 尤物视频一区二区| 欧美精品自拍偷拍动漫精品| 亚洲小说春色综合另类电影| 国产精品自拍小视频| 久久免费午夜影院| 亚洲精品美女久久7777777| 欧美色图五月天| 国产精品日韩高清| 亚洲激情电影中文字幕| 久久躁狠狠躁夜夜爽| 亚洲福利电影| 欧美日本一区二区高清播放视频| 亚洲图片激情小说| 国产午夜精品美女视频明星a级 | 国产性猛交xxxx免费看久久| 欧美**人妖| 亚洲午夜一区| 精品99一区二区三区| 欧美日韩国产综合视频在线观看中文 | 欧美日本国产一区| 午夜在线精品| 亚洲全部视频| 国产伦精品免费视频| 欧美成人精品福利| 亚洲在线观看免费视频| 在线欧美一区| 国产精品久久久免费| 蜜臀99久久精品久久久久久软件| 亚洲夜间福利| 亚洲高清免费视频| 国产精品视频导航| 欧美成人在线网站| 午夜精品久久久久| 亚洲激情二区| 国产区在线观看成人精品| 欧美剧在线免费观看网站| 久久精品国产99精品国产亚洲性色| 亚洲九九精品| 加勒比av一区二区| 国产精品久99| 欧美精品aa| 久久久综合网站| 亚洲欧美另类中文字幕| 亚洲开发第一视频在线播放| 国产综合久久| 国产精品伦子伦免费视频| 欧美成人亚洲成人| 久久国产婷婷国产香蕉| 国产精品99久久久久久白浆小说 | 国产亚洲欧美一区二区三区| 欧美日韩美女在线观看| 美乳少妇欧美精品| 久久av在线| 亚洲香蕉在线观看| 亚洲毛片在线| 激情国产一区| 国产精品一区一区| 欧美午夜片在线观看| 欧美国产免费| 久久午夜视频| 久久精品123| 午夜久久久久久| 亚洲午夜精品视频| 99精品免费| 亚洲毛片视频| 亚洲精品乱码久久久久| 亚洲福利在线看| 依依成人综合视频| 韩日成人在线| 国产在线精品自拍| 国产一区二区三区久久悠悠色av | 亚洲国产欧美不卡在线观看| 国产在线乱码一区二区三区| 国产毛片一区| 国产精品一区二区在线观看| 国产精品成人av性教育| 欧美日韩一区二区三区视频| 欧美成人自拍视频| 美女国产一区| 久久先锋影音| 玖玖精品视频| 另类成人小视频在线| 久久久久国产精品www| 欧美自拍偷拍午夜视频| 性色一区二区| 欧美一级精品大片| 欧美一区二区三区四区高清| 亚洲欧美日韩在线播放| 亚洲欧美另类在线| 亚洲一区二区三区在线看 | 欧美日本一区二区高清播放视频| 欧美精品成人91久久久久久久| 欧美精品一区二区三区在线看午夜| 欧美成人乱码一区二区三区| 欧美99久久|