Ztree改版 - 将图标字体化 - fontAwesome

2024-02-25 14:40

本文主要是介绍Ztree改版 - 将图标字体化 - fontAwesome,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

引言

ps:小白可以一看,大神勿打~

用过 ztree 的盆友们都知道,ztree 功能强大,就功能上来说,追求着“无处不按钮”的体验,但好用不好看。可能有朋友说:“我这棵树只有我自己看,够用就行”

(我听不见,你没追求~)。对于这种更多时候是在背面展示的内容,我们追求一个词:简约,什么叫简约?简约就是:简单中透露着大气,朴实中内敛着奢华。呃~

对不起,扯远了,看最终效果图:

对比一下原型ztree,想要女神女友,还需改版ztree~

正文

对于ztree,我们审查下代码就能发现,它里面的图标是一整张图片,以背景图片配合background-position,来实现的。这样做的好处从性能方面来说储存消耗小,加载快,从更新方面来说

,新版本图标上传图片覆盖就行了,当然前提是你得有个ui或者懂ps和ai的前端,光ps肯定是不够的,图标必须是矢量才能保证清晰度效果。

知道了 ztree 图标是背景图片方式生成的,那么改版ztree我们就有了两个思路:

  第一种:做一张尺寸一样的图片(注意图片里面图标大小也一致 )去覆盖,这样的方便之处在于我们只需要知道背景图片在哪个文件夹

  就能完成改版,不需要去看源码(想想挺方便哈),而条件在上面提过了;

  第二种:注意它是背景图片,如果我们代码中在某图标位置添加文字(当然不能过多,不然会撑大)或尺寸合适的图片并不会改变布局,而是覆盖在背景图片上,

  这样的话我们就可以在背景图片所在的标签里面加上 fontawesome 中对应的类名就可以实现效果了,至于那张背景图,删掉呗~

步骤

找个 demo 看一下 ztree 中各个图片对应的标签(折叠,文件夹,复选框,点线)有什么特别之处,比如说类名 id等,这里我们以 折叠图标为例,下面是源代码:

 

我们可以看到现在折叠图片是折叠状态的:类名对应 roots_close。

展开源码:

 

展开对应的类名是:roots_open。

这样看来我们可以想到:对应于不同的状态  -  不同的类名  -  不同的类名对应不同的样式即背景图片位置不同  -  不同的图标。

也就是说我们只需要在不同的状态的时候添加相应的 fontawesome 图标调用类名就可以轻松完全图标修改了,到底是不是这样呢?试试看。

打开 ztree中 jquery.ztree.all.js,查找: root_open :

 

查找结果显示找不到,这伤害来得太突然,突然就有了一种“朕的大清要亡了的感觉”,冷静,这个不行,查另一个看看,还有个 switch ,查找:

 

这下就有惊喜了,看图我们可以知道 switch 被定义为了 SWITCH,这样的话我们瞬间就可以想到会不会是 root_close 是由两个

变量通过 _ 组合起来的呢,试一下就知道了, 查找 root :

 

到了这里,暗松口气外加会心一笑:有了。查找 ROOT,这里我选择了区分大小写查找,因为我们已经知道了它是被定义为了大写 ROOT 参数,后面只会以

ROOT 形式出现在需要它的位置,看代码:

顾名思义,这个方法是用来生成 节点线类名,折叠图标不就是两根线么?所以是它是它就是它。注意上图中的 lineClass 数组,由它的名字我们猜测这是生成图标的数组,但现在它是空的,

为了知道它到底是怎么用的,我们随便添加进去一个类名: testThis ,刷新一下看看:

 

可以清楚看到在代码中这个 testThis 被添加在了折叠图标的标签类名中,这样的话我们已经解决了折叠图标折叠起来的状态图标,但还没完,还有展开状态(可能有盆友心里已经在问了:还没完吧?还有最后一层的子节点呢?最后一层的子节点应该是没有折叠图标的啊,先保留问题),继续查找 ROOT,通过断点调试,最后我们锁定:

至于为什么锁定在这里,有兴趣的盆友可以自己试一下就知道了,这里不做解释了,这里我们再一次看到了 DOCU ,而且如果细心观察了的话我们发现它总是出现最后(猜测:最后的子节点?)

写下如下代码调试查看结果:

折叠:

展开:

OK,这样我们就完成了折叠图标的替换,通过大同小异的方法,我们一次替换 其余图标,这时我们发现最后一层的子节点上也有折叠图标,这很明显不科学,问题应该是出在

生成折叠图标方法上面:

做出如下处理,重置生成 类数组:

问题得到完美解决。

接下来我们要做的就是完成这次改版,虽然这样也能用,但是如果每次修改都需要到代码里面到处查找修改,这就不符合我们追求的优化维护,怎么办呢?

很简单,最开始的时候我们就注意到了,ztree 几乎将所有元素都定义为了参数来调用,如此我们也可以自己新建一个参数来定义这些类,并赋予默认值,这样

以后要修改就只需要修改默认值就行了,看图:

 

调用方式: consts.usericon.XXXX,如: consts.usericon.CLOSE .

最终效果图:

注意:ztree本身不提供增加节点按钮,需要自定义方法,这个有兴趣的盆友可以自己了解一下。

最后附上整个demo给需要的朋友参考一下,有疑问可以留言互相交流,多谢各位看官,抱拳~

下载demo

这篇关于Ztree改版 - 将图标字体化 - fontAwesome的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/745793

相关文章

[环境配置]ubuntu20.04安装后wifi有图标但是搜不到热点解决方法

最近刚入手一台主机,暗影精灵8plus电竞主机,安装ubuntu后wifi怎么都搜不到热点,前后重装系统6次才算解决问题。这个心酸历程只有搞技术人才明白。下面介绍我解决过程。 首先主机到手后是个windows10系统,我用无线网连接了一下,可以正常上网,说明主机有无限网卡且正常。然后我就直接开始安装Ubuntu20.04了,安装成功后发现wifi有图标但是搜不到热点,我想是不是无线网卡驱动有没有

CAD 多个页面在一个任务栏图标设置

命令行输入快捷键op或: 下图打对号,确定即可。

【超简单】1分钟解决ppt全文字体一键设置

省流 ppt的全部字体需要在“幻灯片母版”里面,“自定义字体”去设置好标题与正文的字体之后才算全部设置完毕 “视图”---“幻灯片母版” 找到“字体”---“自定义字体” 设置好中文和西文的字体,都可以按照自己的选择来,保存即可 吐槽 之所以发这么一个基础的帖子是因为,之前全网到处搜都没看到成功设置了的,其实才发现在自定义里面得多一步这个才可以,还好早发现了,希望能

element-ui打包之后图标不显示,woff、ttf加载404

1、bug 起因 昨天在 vue 项目中编写 element-ui 的树形结构的表格,发现项目中无法生效,定位问题之后发现项目使用的 element-ui 的版本是 2.4.11 。看了官方最新版本是 2.15.14,然后得知 2.4.11 版本是不支持表格树形结构的。于是决定升级 element-ui 的版本,方便后续的开发。 升级之后本地简单的过了一遍系统功能,并没有发现有什么不妥,于

【字体反爬虫】woff字体反爬虫实战

目标:http://www.porters.vip/confusion/movie.html 目标是抓取用户评分,评分人数,累计票房,三个字段。简单一看很简单是不是,我们查看源代码,发现不是那么容易。 跟我们看到的并非如此啊。这是什么操作,仔细分析网络请求,我们发现这是使用了字体反爬虫的技术,那么我们如何破解呢? 首先我们得用网络请求这个字体文件,然后下载下来。 woff_url

记录|C#的软件图标更换

目录 前言一、软件界面的图标二、软件外的图标更新时间 前言 参考文章: 自己开发出的软件,肯定要更换图标,无论是软件打开前还是软件上的。如下图: 一、软件界面的图标 直接在Form的属性中进行icon的更换【如下图:】 二、软件外的图标 在“资源管理”中,打开项目的属性,在属性中配置图标【如下图】 更新时间 2024.09.06:创建

教你用Python快速生成各尺寸应用图标和截屏

作为独立开发者,App发布前,自然要自己制作图标、截屏,尤其是iOS,每次都要手动生成六七种尺寸的截屏,十几个尺寸的图标,尽管在Mac上有生成图标的应用,但是效果仍旧不尽如人意。 现在(其实肯定早就有人这么做了),用强大的Python就可以瞬间生成。 简单和大家说下原理。利用Python强大的文件、图像处理能力,自动缩放尺寸,生成所需图标和截屏。 有些注意点提醒下大家,截屏需要

「账号诊断」上线,「违规检测」全新改版!企业运营效率再提升!

云略自推出至今,始终致力于搜集用户的使用反馈,并据此不断新增及优化各项功能,持续产品迭代。 从矩阵号管理延伸的私聊/评论回复功能,到文案生成进阶的智能混剪,云略通过产品功能的不断升级优化,助力品牌的内容创作与用户经营。 近期,我们新增「账号诊断」功能,并对「违规检测」全面改版,让企业运营者可以更加轻松地掌握账号健康状况,及时发现并解决潜在问题,从而提升整体运营效率。 具体功能

Linux中Ubuntu系统安装Windows得字体

背景 安装了geoserver 然后geoserver中需要用到微软雅黑字体 所以需要安装一下Linux系统安装Windows中的字体 创建字体目录 cd /usr/share/fonts/mkdir winfont 在Windows找到对应字体 C:\Windows\Fonts 复制该字体到桌面 Linux系统中上传字体 root@test-server03:/usr/s

eclipse中设置中文字体变大,注释字体变大,不跟代码字体一起变大

windows-preferences-general-appearance-colours and fonts 在basic里面找到最后TEXT FONT,点edit,在右下角脚本里面将西欧语言改成中欧语言 解决