动态引入阿里图标库 · 工作篇 · 看云
[TOC] >[success] # 动态引入阿里图标库 最近项目中加入了给菜单**选择图标**的功能,因为用[阿里图标](https://www.iconfont.cn/)的**链接方式**引入到项目中,如果想实现向下面一样**展示阿里图标库所有的图标**,有**2**种方法。 **第1种:单个去手动记录图标的class类名,整理成数组的形式进行在列表中循环**。 **第2种: 用ajax请求阿里图标的链接,链接会返回一个JSON字符串的一大串icon的类名的数据,需要写一个截取方法把所有class整合成数组的形式进行在列表中循环**  <br> >[success] ## 截取class类名方法 ~~~ /** * 获取阿里图标列表 * @param {String} url 阿里巴巴图标URL */ getCssJson(url) { const xhr = new XMLHttpRequest() xhr.open('GET', url) xhr.onreadystatechange = () => { if (xhr.readyState === 4 && xhr.status === 200) { const css = JSON.parse(JSON.stringify(xhr.responseText)) let [,, ...iconArr ] = Object.keys(this.css2json(css)) // 去除掉class类名上的点 for(let i=0;i<iconArr.length;i++){ iconArr[i] = iconArr[i].replace('.','') } // 把远程图标跟本地图标合并 this.iconArr = [...iconArr, ...localIconList] || [...localIconList] } } xhr.send() }, /** * 将CSS形式的字符串转换为JSON * @param {String} css 字符串 */ css2json(css) { // 移除CSS所有注释 let open //开始注释 let close //结束注释 while ((open = css.indexOf('/*')) !== -1 && (close = css.indexOf('*/')) !== -1) { css = css.substring(0, open) + css.substring(close + 2) } // 初始化返回值 let json = {} while (css.length > 0) { // 存储第一个左/右花括号的下标 const lbracket = css.indexOf('{') const rbracket = css.indexOf('}') let declarations = css .substring(lbracket + 1, rbracket) .split(';') .map(e => e.trim()) .filter(e => e.length > 0) // 移除所有""空值 // 转为Object对象 declarations = this.toObject(declarations) let selectors = css .substring(0, lbracket) .split(',') .map(selector => { //去掉伪类 const signBracket = selector.indexOf(':') if (signBracket === -1) { return selector.trim() } else { return selector.substring(0, signBracket) } }) // 迭代赋值 selectors.forEach(selector => { // 若不存在,则先初始化 if (!json[selector]) json[selector] = {} // 赋值到JSON Object.keys(declarations).forEach((key) => { json[selector][key] = declarations[key] }) }) // 继续下个声明块 css = css.slice(rbracket + 1).trim() } // 返回JSON形式的结果串 return json }, toObject(array){ // 辅助方法:将array转为object let ret = {} array.forEach(e => { const index = e.indexOf(':') const property = e.substring(0, index).trim() const value = e.substring(index + 1).trim() ret[property] = value }) return ret } ~~~
vue复选框逻辑 get请求给后台传数组 提交表单时传值参数处理方案 Element ui上传图片功能 async和await的使用 时间戳转换 日期格式转换时间戳 时间戳转换日期格式 对深拷贝的认知总结 vue-右键菜单功能 textarea中换行、回车、空格的识别与处理 element ui表格合并 合并行(上下行) 双层for循环 数组去重 瀑布流 前端多条件筛选 闭包的理解 改变this指向 vue单选框逻辑 对象数组根据某个属性来进行排序 vscode插件整理 对象数组多条件去重 Blob类型数据转换Json数据类型 Element ui做批量上传功能 前端cookie和后端cookie 强制转换https协议 给事件传额外参数 树形结构数据处理 查找所有父级数据 根据id筛选单条数据 动态引入阿里图标库 四舍五入 封装一个Promise.allSettled方法 判断输入框内是否有emoji表情 element-ui的popover组件位置偏移 formData上传文件时,携带【数组对象参数】 前端解压压缩包(zip)解压后上传解压的文件 element ui表格列相同解决办法 elementUI,table复选框多选,翻页/切换条数时保持选中状态 cookie 和 token 的区别相关知识
如何把阿里图标库的图标生成代码并应用于自己的项目
Android使用字体图标库
中国边缘公有云服务市场,阿里云边缘云持续第一!
阿里云飞天洛神云网络子系统“齐天”:超大规模云网络智能运维的“定海神针”
新数智空间:阿里云边缘云持续保持中国公有云市场第一
G行云计算系列之全栈云管理篇
阿里云、腾讯云、华为云 2023年Q3金融行业中标项目盘点
解读阿里云在线教育解决方案
分享阿里云(公有云)学习思路
阿里云金融服务器维护时间
网址: 动态引入阿里图标库 · 工作篇 · 看云 https://www.huajiangbk.com/newsview1946632.html
上一篇: 图标库图片 |
下一篇: css图标库 |
推荐分享

- 1君子兰什么品种最名贵 十大名 4012
- 2世界上最名贵的10种兰花图片 3364
- 3花圈挽联怎么写? 3286
- 4迷信说家里不能放假花 家里摆 1878
- 5香山红叶什么时候红 1493
- 6花的意思,花的解释,花的拼音 1210
- 7教师节送什么花最合适 1167
- 8勿忘我花图片 1103
- 9橄榄枝的象征意义 1093
- 10洛阳的市花 1039