欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

詳解如何愉快的在微信小程序中使用SVG圖標(biāo)

 更新時(shí)間:2021年03月07日 14:28:44   作者:O_o  
這篇文章主要介紹了詳解如何愉快的在微信小程序中使用SVG圖標(biāo),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

SVG近幾年因各種優(yōu)勢被大量的應(yīng)用,遺憾的是到目前為止微信小程序并不支持以XML的形式使用SVG,這使得SVG的靈活性大大下降,大多數(shù)人選擇放棄在微信小程序中使用SVG圖標(biāo)方案。
那么,真的就沒有辦法在微信小程序中愉快的使用SVG圖標(biāo)了嗎?我們先來分析一下,對于使用SVG圖標(biāo)我們有哪些需求:

  • 能夠引入使用
  • 能夠調(diào)整顏色

首先第一點(diǎn)是沒有問題的,微信小程序支持以Image.src的形式引入SVG。接下來就是本文的重點(diǎn)部分了,如何讓使Image形式的SVG可以改變顏色。

在最近對CSS的學(xué)習(xí)中,我發(fā)現(xiàn)有個(gè)屬性可以可以使DOM的非透明部分投下一個(gè)陰影,這個(gè)屬性就是drop-shadow,屬性的值與box-shadow大致相近。通過這個(gè)屬性,我們就可以為SVG圖片投下個(gè)可以修改顏色的陰影,然后我們再將原來的部分隱藏掉就可以實(shí)現(xiàn)一個(gè)可以修改顏色的SVG圖標(biāo)了。

接下來我們來實(shí)踐一下,首先構(gòu)造好DOM結(jié)構(gòu):

<view class="svg_icon">
 <image class="svg_icon-inner" src="/path/icon.svg"/>
</view>

接下來添加CSS:

.svg_icon {
 display: inline-flex;
 width: 1em;
 height: 1em;
 overflow: hidden;
}

.svg_icon-inner {
 width: 1em;
 height: 1em;
 transform: translateY(-1em);
 filter: drop-shadow(0 1em 0 currentColor);
}

我來解釋一下為什么要這么設(shè)置DOM結(jié)構(gòu)和CSS:首先svg_icon是整個(gè)圖標(biāo)的容器,負(fù)責(zé)設(shè)置圖標(biāo)的大小(1em=父容器字體的大?。?,和隱藏多余的部分(即圖標(biāo)的原始部分),而svg_icon-inner則負(fù)責(zé)渲染SVG,并投下有顏色的陰影,通過給svg_icon-inner設(shè)置一個(gè)與父容器相同的寬高并給其設(shè)置一個(gè)投影反方向的偏移則可以實(shí)現(xiàn)改變SVG顏色的需求(將投影的顏色設(shè)置為currentColor可以使得圖標(biāo)的顏色隨著父容器的字體顏色改變)。

這個(gè)方案有個(gè)缺點(diǎn),如果頁面中有transform的動(dòng)畫并觸發(fā)時(shí),圖標(biāo)就會(huì)發(fā)生閃爍,具體的原因我也不太清楚,希望有大佬能夠指教一下。

到此這篇關(guān)于詳解如何愉快的在微信小程序中使用SVG圖標(biāo)的文章就介紹到這了,更多相關(guān)小程序使用SVG圖標(biāo)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • JavaScript循環(huán)鏈表實(shí)現(xiàn)方法

    JavaScript循環(huán)鏈表實(shí)現(xiàn)方法

    這篇文章主要給大家介紹了關(guān)于JavaScript循環(huán)鏈表實(shí)現(xiàn)的相關(guān)資料,循環(huán)鏈表和單向鏈表很相似,唯一的區(qū)別是循環(huán)鏈表的尾節(jié)點(diǎn)是指向頭節(jié)點(diǎn)的,需要的朋友可以參考下
    2023-07-07
  • javascript合并表格單元格實(shí)例代碼

    javascript合并表格單元格實(shí)例代碼

    這篇文章主要介紹了javascript合并表格單元格實(shí)例代碼,在某些應(yīng)用中需要?jiǎng)討B(tài)的合并單元格,感興趣的朋友可以參考一下
    2016-01-01
  • javascript hashtable實(shí)現(xiàn)代碼

    javascript hashtable實(shí)現(xiàn)代碼

    javascript中沒有像c#,java那樣的哈希表(hashtable), 然而,javascript中的Array也只有一些類似于'哈希表'的非常簡單功能。
    2009-10-10
  • ES6 javascript中Class類繼承用法實(shí)例詳解

    ES6 javascript中Class類繼承用法實(shí)例詳解

    這篇文章主要介紹了ES6 javascript中Class類繼承用法,結(jié)合實(shí)例形式較為詳細(xì)的分析了ES6繼承的基本用法、相關(guān)屬性、方法與使用技巧,需要的朋友可以參考下
    2017-10-10
  • js定時(shí)器實(shí)現(xiàn)倒計(jì)時(shí)效果

    js定時(shí)器實(shí)現(xiàn)倒計(jì)時(shí)效果

    這篇文章主要為大家詳細(xì)介紹了js定時(shí)器實(shí)現(xiàn)倒計(jì)時(shí)效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • Bootstrap Table使用整理(三)

    Bootstrap Table使用整理(三)

    這篇文章主要介紹了Bootstrap Table使用整理(三)的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • JavaScript中的作用域與閉包、原型與原型鏈、異步與單線程

    JavaScript中的作用域與閉包、原型與原型鏈、異步與單線程

    JavaScript的三座大山指的是:作用域和閉包、原型和原型鏈、異步與單線程,這些概念在日常的開發(fā)工作中經(jīng)常被提及,并對我們理解和編寫高質(zhì)量的JavaScript代碼至關(guān)重要
    2024-02-02
  • 淺談JavaScript異常處理語句

    淺談JavaScript異常處理語句

    考慮到 JS 中的錯(cuò)誤可比服務(wù)器端的代碼產(chǎn)生的錯(cuò)誤要多得多,并且還難以發(fā)現(xiàn)及修正,所以 JS 代碼必須有異常處理以及全局一場處理。
    2015-06-06
  • threejs?模型添加文字的多種方式匯總

    threejs?模型添加文字的多種方式匯總

    這篇文章主要介紹了threejs?模型添加文字的幾種方式,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-03-03
  • js利用prototype調(diào)用Array的slice方法示例

    js利用prototype調(diào)用Array的slice方法示例

    這篇文章主要介紹了如何利用js的prototype調(diào)用Array的slice方法,需要的朋友可以參考下
    2014-06-06

最新評論