摘要:需求需求實(shí)現(xiàn)一個(gè)圖標(biāo)庫(kù)的選擇界面,展示庫(kù)中所有的圖標(biāo)并提供選擇功能庫(kù)共個(gè)實(shí)現(xiàn)思路思路從樣式表中提取所有的的樣式,并處理成數(shù)組利用實(shí)現(xiàn)循環(huán)渲染基本知識(shí)參考操作屬性返回當(dāng)前規(guī)則所屬的那個(gè)樣式塊實(shí)例。
&01.需求
需求 : 實(shí)現(xiàn)一個(gè)圖標(biāo)庫(kù)的選擇界面,展示UI庫(kù)中所有的圖標(biāo)并提供選擇功能
ICON庫(kù)——iview UI 共 860 個(gè)
&02.實(shí)現(xiàn)思路思路 從 iview CSS 樣式表中 提取所有的 .ivu-icon的樣式,并處理成數(shù)組 利用 v-for 實(shí)現(xiàn)循環(huán)渲染
基本知識(shí)參考-CSS操作
CSSStyleDeclaration.parentRule屬性返回當(dāng)前規(guī)則所屬的那個(gè)樣式塊(CSSRule 實(shí)例)。如果不存在所屬的樣式塊,該屬性返回null。
var declaration = document.styleSheets[0].rules[0].style; declaration.parentRule === document.styleSheets[0].rules[0]&03.代碼塊
注意?。?!
styleSheets、cssRules 都是 Object 類(lèi)型,其本身定義了一個(gè) length 的鍵值;
除 length 外每個(gè)鍵值從0開(kāi)始自增,所以在取值時(shí)以 styleSheets[0] 去取 ,并非數(shù)組的取值;
還有一點(diǎn)要注意的是:在開(kāi)發(fā)環(huán)境下,css未被打包時(shí)肯能會(huì)有多個(gè)styleSheets存在、而生產(chǎn)環(huán)境下css會(huì)默認(rèn)被統(tǒng)一打成一份即只存在一個(gè)styleSheets
/** * 提取ICON */ getIconsArr () { let data = []; let docSheets = document.styleSheets||[]; for ( let sheets of docSheets ) { if(sheets.cssRules.length!==0){ for (let index in sheets.cssRules) { let reStr = sheets.cssRules[index].selectorText||sheets.cssRules[index].cssText; if(reStr!=undefined&&reStr.startsWith(".ivu-icon-")){ data.push(reStr.split("::")[0].slice(10,reStr.split("::")[0].length)) ; } } } } // 數(shù)組去重 let set = new Set(data); this.icons = new Array(...set); }
循環(huán)生成圖標(biāo)
共 {{icons.length||0}} 個(gè)圖標(biāo)
圖標(biāo)的選擇功能 基于 vuex 狀態(tài)管理實(shí)現(xiàn),選中狀態(tài)由curIcon的值決定每個(gè)元素的class
收工
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/117319.html
摘要:背景第一天練習(xí)支付寶小程序的時(shí)候?qū)懞昧艘粋€(gè)簡(jiǎn)單的頁(yè)面后續(xù)是新增重置按鈕連接后端接口然后加入圖標(biāo)網(wǎng)上看了很多小程序加圖標(biāo)例子說(shuō)實(shí)話(huà)沒(méi)有單獨(dú)能成功的我也不記得結(jié)合了多少個(gè)才成功了還是自己寫(xiě)了篇文章記錄下引入流程可能有點(diǎn)啰嗦但是比較詳細(xì)連接后端接 背景:第一天練習(xí)支付寶小程序的時(shí)候?qū)懞昧艘粋€(gè)簡(jiǎn)單的頁(yè)面.后續(xù)是新增重置按鈕,連接后端接口.然后加入icon圖標(biāo).網(wǎng)上看了很多小程序加icon圖標(biāo)例...
摘要:使用雪碧圖,能夠減少頁(yè)面的請(qǐng)求數(shù)降低圖片占用的字節(jié),以此來(lái)達(dá)到提升頁(yè)面訪問(wèn)速度的目的。也正是因?yàn)檫@一點(diǎn),導(dǎo)致很多開(kāi)發(fā)者懶于使用雪碧圖。本文就介紹下怎樣使用來(lái)自動(dòng)合并雪碧圖。生成的每個(gè)雪碧圖默認(rèn)的規(guī)則是目錄名圖片名。 css雪碧圖又叫css精靈或css sprite,是一種背景圖片的拼合技術(shù)。使用css雪碧圖,能夠減少頁(yè)面的請(qǐng)求數(shù)、降低圖片占用的字節(jié),以此來(lái)達(dá)到提升頁(yè)面訪問(wèn)速度的目的。但...
摘要:除此之外,部分頁(yè)面,其實(shí)完全可以由網(wǎng)頁(yè)去支持多端共用的功能,樓主親身遇到過(guò)的場(chǎng)景,就是圖表的繪制,我們的方案是一個(gè)頁(yè)面,需要微信,手機(jī)網(wǎng)頁(yè),和都具備該功能,而且我們手機(jī)網(wǎng)頁(yè)和客戶(hù)端打開(kāi)的稍微有區(qū)別,需要隱藏。 showImg(https://segmentfault.com/img/bVzxDW); 相信好多寫(xiě)React Native的都是前端出身,當(dāng)然遇見(jiàn)問(wèn)題的,也很多時(shí)候會(huì)想從前端...
摘要:概述項(xiàng)目開(kāi)發(fā)過(guò)程中使用到了不少前端美化效果的方法,總結(jié)一下圖片作為背景要實(shí)現(xiàn)的效果是,任意一張圖片,不需要調(diào)整圖片尺寸,圖片完全填充網(wǎng)頁(yè)背景。 概述 項(xiàng)目開(kāi)發(fā)過(guò)程中使用到了不少web前端美化效果的方法,總結(jié)一下 1 圖片作為背景 要實(shí)現(xiàn)的效果是,任意一張圖片img-page-background.png,不需要調(diào)整圖片尺寸,圖片完全填充網(wǎng)頁(yè)背景。首先需在CSS代碼中創(chuàng)建.page-bg...
閱讀 1884·2021-09-23 11:21
閱讀 727·2019-08-30 15:55
閱讀 867·2019-08-29 15:40
閱讀 584·2019-08-29 12:56
閱讀 3196·2019-08-26 12:00
閱讀 3591·2019-08-23 18:24
閱讀 2282·2019-08-23 17:08
閱讀 1669·2019-08-23 17:03