js列举css中所有图标的实现代码

 更新时间:2011年07月04日 23:31:24   作者:  
最近在做一个通用的配置模块。配置模块中必然要对系统的菜单、功能模块、权限资源等进行配置,为了更好的用户体验,图标是必不可少的!
美工做的css样式里icon越来越多,手工来写icon名几乎不可能实现。所以就有了这个功能点:将css样式里的所有icon类列举出来以图形化的形式显示供配置人员选择!

搜索一圈,发现介绍从css里遍历东西的文章非常少。于是花了半天的时间自己来实现了!先看下一个选择图标的demo:

image 
这里用的是easyui:一个comboxtree。
这里省略引用css和js库的代码(jquery和easyui库)。
html:

复制代码 代码如下:

<input id="cc" class="easyui-combotree" style="width:200px;">

Javascript:
复制代码 代码如下:

function getstyle() {
for (var i = 0; i < document.styleSheets.length; i++) {
var rules;
if (document.styleSheets[i].cssRules) {
rules = document.styleSheets[i].cssRules;
}
else {
rules = document.styleSheets[i].rules;
}
for (var j = 0; j < rules.length; j++) {
if (rules[j].selectorText.substr(0, 5) == ".icon")
$('#cc').combotree('tree').tree('append', {
data: [{
id: rules[j].selectorText.substr(1),
text: rules[j].selectorText.substr(1),
iconCls: rules[j].selectorText.substr(1)
}]
});
}
}
}
$(function () {
getstyle();
});

有几个可能存在的问题:
1.大的项目样式可能巨多巨大,这种遍历显然不可能,需要指定到styleSheets。
2.如果各种大小的图标可能用easyui-combotree不太合理。
最后通过配置icon生成的菜单效果: image

image

相关文章

  • javascript实现小型区块链功能

    javascript实现小型区块链功能

    这篇文章主要介绍了javascript实现小型区块链功能,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • 详解JS浏览器事件模型

    详解JS浏览器事件模型

    这篇文章主要介绍了JS浏览器事件模型,对时间模型感兴趣的同学,可以参考下
    2021-05-05
  • layer.open 按钮的点击事件关闭方法

    layer.open 按钮的点击事件关闭方法

    今天小编就为大家分享一篇layer.open 按钮的点击事件关闭方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-08-08
  • JS添加或删除HTML dom元素的方法实例分析

    JS添加或删除HTML dom元素的方法实例分析

    这篇文章主要介绍了JS添加或删除HTML dom元素的方法,结合实例形式分析了javascript针对HTML DOM元素节点的创建、追加、删除等相关操作技巧与注意事项,需要的朋友可以参考下
    2019-03-03
  • JS获取屏幕高度的简单实现代码

    JS获取屏幕高度的简单实现代码

    下面小编就为大家带来一篇JS获取屏幕高度的实现代码。小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-05-05
  • JS实现字符串翻转的方法分析

    JS实现字符串翻转的方法分析

    这篇文章主要介绍了JS实现字符串翻转的方法,结合实例形式分析了javascript字符串使用reverse方法、字符串遍历方法以及针对输入字符串的遍历、逆序输出等方法实现字符串反转相关操作技巧,需要的朋友可以参考下
    2018-08-08
  • Webpack如何引入bootstrap的方法

    Webpack如何引入bootstrap的方法

    本篇文章主要介绍了Webpack如何引入bootstrap的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-06-06
  • 开源一个微信小程序仪表盘组件过程解析

    开源一个微信小程序仪表盘组件过程解析

    这篇文章主要介绍了开源一个微信小程序仪表盘组件过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-07-07
  • 判断JavaScript中的两个变量是否相等的操作符

    判断JavaScript中的两个变量是否相等的操作符

    可能有些同学看到这个标题就会产生疑惑,为什么我们要判断JavaScript中的两个变量是否相等,JavaScript不是已经提供了双等号“==”以及三等号“===”给我们使用了吗
    2019-12-12
  • 微信小程序中多个页面传参通信的学习与实践

    微信小程序中多个页面传参通信的学习与实践

    刚接触微信小程序,对里面的语法和属性还不怎么了解,最近正在努力学习中,下面这篇文章主要给大家介绍了微信小程序中多个页面传参通信的相关资料,是最近学习的一个内容总结,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-05-05

最新评论