ps:小白可以一看,大神勿打~
用過 ztree 的盆友們都知道镊叁,ztree 功能強大尘颓,就功能上來說,追求著“無處不按鈕”的體驗晦譬,但好用不好看疤苹。可能有朋友說:“我這棵樹只有我自己看敛腌,夠用就行”
(我聽不見卧土,你沒追求~)。對于這種更多時候是在背面展示的內(nèi)容像樊,我們追求一個詞:簡約尤莺,什么叫簡約?簡約就是:簡單中透露著大氣生棍,樸實中內(nèi)斂著奢華颤霎。呃~
對不起,扯遠了,看最終效果圖:
對比一下原型ztree友酱,想要女神女友晴音,還需改版ztree~
正文
對于ztree,我們審查下代碼就能發(fā)現(xiàn)缔杉,它里面的圖標是一整張圖片锤躁,以背景圖片配合background-position,來實現(xiàn)的或详。這樣做的好處從性能方面來說儲存消耗小系羞,加載快,從更新方面來說
鸭叙,新版本圖標上傳圖片覆蓋就行了觉啊,當然前提是你得有個ui或者懂ps和ai的前端,光ps肯定是不夠的沈贝,圖標必須是矢量才能保證清晰度效果杠人。
知道了 ztree 圖標是背景圖片方式生成的,那么改版ztree我們就有了兩個思路:
第一種:做一張尺寸一樣的圖片(注意圖片里面圖標大小也一致?)去覆蓋嗡善,這樣的方便之處在于我們只需要知道背景圖片在哪個文件夾
就能完成改版学歧,不需要去看源碼(想想挺方便哈)枝笨,而條件在上面提過了;
第二種:注意它是背景圖片剔桨,如果我們代碼中在某圖標位置添加文字(當然不能過多徙融,不然會撐大)或尺寸合適的圖片并不會改變布局欺冀,而是覆蓋在背景圖片上隐轩,
這樣的話我們就可以在背景圖片所在的標簽里面加上 fontawesome 中對應的類名就可以實現(xiàn)效果了,至于那張背景圖砰奕,刪掉唄~
步驟
找個 demo 看一下 ztree 中各個圖片對應的標簽(折疊军援,文件夾称勋,復選框,點線)有什么特別之處空厌,比如說類名 id等银酬,這里我們以 折疊圖標為例,下面是源代碼:
我們可以看到現(xiàn)在折疊圖片是折疊狀態(tài)的:類名對應roots_close赋朦。
展開源碼:
展開對應的類名是:roots_open李破。
這樣看來我們可以想到:對應于不同的狀態(tài)? -? 不同的類名? -? 不同的類名對應不同的樣式即背景圖片位置不同? -? 不同的圖標。
也就是說我們只需要在不同的狀態(tài)的時候添加相應的 fontawesome 圖標調(diào)用類名就可以輕松完全圖標修改了毛嫉,到底是不是這樣呢承粤?試試看辛臊。
打開 ztree中?jquery.ztree.all.js偷俭,查找:root_open :
查找結(jié)果顯示找不到淹遵,這傷害來得太突然负溪,突然就有了一種“朕的大清要亡了的感覺”川抡,冷靜须尚,這個不行耐床,查另一個看看,還有個switch楔脯,查找:
這下就有驚喜了撩轰,看圖我們可以知道 switch 被定義為了 SWITCH昧廷,這樣的話我們瞬間就可以想到會不會是 root_close 是由兩個
變量通過 _ 組合起來的呢,試一下就知道了木柬, 查找root :
到了這里,暗松口氣外加會心一笑:有了眉枕。查找ROOT恶复,這里我選擇了區(qū)分大小寫查找,因為我們已經(jīng)知道了它是被定義為了大寫 ROOT 參數(shù)齐遵,后面只會以
ROOT 形式出現(xiàn)在需要它的位置寂玲,看代碼: