日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學(xué)無先后,達(dá)者為師

網(wǎng)站首頁 編程語言 正文

前端使用svg圖片改色實(shí)現(xiàn)示例_其它綜合

作者:前端架構(gòu)師陳龍威 ? 更新時(shí)間: 2022-09-14 編程語言

引言

周六來公司寫點(diǎn)東西,剛好有個(gè)icon顏色不對,ui又不在公司,那么就只能自己動手豐衣足食了。

嗚嗚嗚,好想住公司,都不用上下班了。

svg填充色用的fill

當(dāng)ui給你了svg圖片,且是單色的,又只有你用

svg填充色用的fill,修改里面的顏色即可。

下面是例子:

首先,ui一般會直接給你svg圖片,比如這樣的:

,用idea或者筆記本打開里面是這樣的:

<?xml version="1.0" encoding="UTF-8"?>
<svg width="16px" height="16px" viewBox="0 0 16 16" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <title>元件/組件圖標(biāo)/提示/面</title>
    <g id="元件/組件圖標(biāo)/提示/面" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <path d="M8,16 C3.581722,16 0,12.418278 0,8 C0,3.581722 3.581722,0 8,0 C12.418278,0 16,3.581722 16,8 C16,12.418278 12.418278,16 8,16 Z M7.5,11.5 C7.5,11.7762581 7.72387097,12 8,12 C8.27612903,12 8.5,11.7762581 8.5,11.5 C8.5,11.2237419 8.27612903,11 8,11 C7.72387097,11 7.5,11.2237419 7.5,11.5 Z M8,4 C7.72385763,4 7.5,4.22385763 7.5,4.5 L7.5,9.5 C7.5,9.77614237 7.72385763,10 8,10 C8.27614237,10 8.5,9.77614237 8.5,9.5 L8.5,4.5 C8.5,4.22385763 8.27614237,4 8,4 Z" id="icon換色層" fill="#f2b044"></path>
    </g>
</svg>

搜索關(guān)鍵詞,找到id="icon換色層" fill="#f2b044",替換fill的值為#df2222,那么就變成紅色了。

你可以試試。

css改色利用過濾器filter

當(dāng)你用的公司統(tǒng)一的svg格式的icon,但是顏色和這次的需求不一致,直接改svg文件可能影響其他顯示,可以考慮css

看到這個(gè),有人就要說了,還不如按方法1,改個(gè)顏色,然后復(fù)制下文件改名,粘貼,簡單粗暴。

確實(shí),可惜我們是前端,一點(diǎn)點(diǎn)優(yōu)化也是優(yōu)化,一點(diǎn)點(diǎn)體積也是體積(一點(diǎn)點(diǎn)味道一般,還是蜜雪冰城好喝)。css改色利用的是過濾器filter的drop-shadow屬性,它的功能是可定點(diǎn)定位生成一個(gè)可調(diào)整模糊度以及顏色的投影,臥槽,真牛,感覺能做好多炫酷的東西,屬實(shí)是彩色影分身術(shù)了。

具體代碼:

<div style="position: relative; width: 20px; height: 20px; border: 1px solid;">
    <img src="./svg/img/demo1.svg" style="position:absolute; top: 0; left: 0; filter: drop-shadow(20px 0 #32bb65)"/>
</div>

效果如下:

然后我們調(diào)整下原本icon的位置,將它往左挪出去:left:-20px,代碼如下:

<div style="position: relative; width: 20px; height: 20px; border: 1px solid;">
  <img src="./svg/img/demo1.svg" style="position:absolute; top: 0; left: -20px; filter: drop-shadow(20px 0 #32bb65)"/>
</div>

最后我們?nèi)サ舴奖阕R別的邊框,并給div加上overflow:hidden,一個(gè)簡單的icon改色就完成了!!好棒!!。

最后順便介紹下filter: drop-shadow()

filter: drop-shadow(x, y, blurry, color),第一個(gè)參數(shù)距離源x軸的像素大小,第二個(gè)參數(shù)是距離源y軸的像素大小,第三個(gè)是模糊度,第四個(gè)是投影的顏色。

這是mdn的資料,有個(gè)很好看的實(shí)現(xiàn):developer.mozilla.org/zh-CN/docs/…

這個(gè)藍(lán)色底就是drop-shadow實(shí)現(xiàn)的。

最后看我多重影分身之術(shù):

drop-shadow(20px 0 red) drop-shadow(20px 20px green) drop-shadow(20px 39px blue) drop-shadow(20px 0 skyblue)

原圖是橙色,第一次是紅色,第二次是綠色,第三次是藍(lán)色,第四次是天藍(lán),每多一次drop-shadow,都會把上一次的圖像復(fù)制一次,把上一次的作為原圖進(jìn)行投影,是裂變了沒錯!!

原文鏈接:https://juejin.cn/post/7120895248665935902

欄目分類
最近更新