js自定义修改复选框单选框样式,清除复选框单选框默认样式

来源:互联网 发布:淘宝商品商家流程 编辑:程序博客网 时间:2024/06/05 19:10

之前做项目的时候,也遇到过需要按照设计稿把<input type="checkbox"><input type="radio">的默认样式进行修改,但发现,并没有可以重置效果的方法,之前用过-webkit-appearance的方法,但是这个只在webkit内核的浏览器里面生效,火狐不生效。
所以自己写了个js,用li来模拟复选框和单选框的效果,很简单,7行就行。

效果图:
这里写图片描述

涉及到的知识点:自定义属性来存储点击状态和原来的class名

html内容:

<div id="box">    <p>你最喜欢的运动</p>    <ul>        <li>爬山</li>        <li>骑车</li>        <li>游泳</li>        <li class='hong'>篮球</li>        <li class='hong'>足球</li>        <li>羽毛球</li>        <li>跳绳</li>        <li>跑步</li>    </ul></div>

js内容:
注释比较多,是为了说明清楚,可能有点乱,能看懂的可以把注释删掉

var aLi = document.querySelectorAll('#box ul li');  /*获取所有的li,如果要用class获取,可写成document.querySelectorAll('.class')*/for (var i=0;i<aLi.length;i++ ){    aLi[i].ifCheck = false;                        /*自定义属性用来表示有没有被选中,初始化设置成false,未选中*/    aLi[i].nowClass = aLi[i].className;            /*自定义属性用来存储最初的className,例如html内容里的class名,hong,这样在后面添加on的class名之后,不会导致原来的class名直接被覆盖*/    aLi[i].onclick = function(){         if(this.ifCheck){                         /*当点击当前li时,如果ifCheck是已经被选中状态*/            this.className = this.nowClass         /*则让当前点击的li的class名等于最初的名字,也就是说把选中的on的class名去掉*/    }else{            this.className += ' on'                /*如果是未选中状态,则加上on,表示被选中*/            }                                      /*可写成三目样式 this.className = this.ifCheck?this.nowClass:this.className+' on';*/        this.ifCheck = !this.ifCheck;              /*一开始未选中,点击之后变成选中,不然相反,所以要给ifCheck的属性取反*/    };};

css样式:

#box{    width:600px;    margin:50px auto;}#box p{    font-size:14px;    font-weight:bold;    border-bottom:1px dashed #000;    line-height:30px;}#box ul{    margin-top:10px;    overflow:hidden;}#box ul li{    width:67px;    height:20px;    float:left;    background-image:url(images/ck.png);  /*未选中时候的背景图*/    background-repeat:no-repeat;    font-size:12px;    line-height:20px;    text-indent:30px;    margin-right:8px;    cursor:pointer;}#box ul li.on{    background-image:url(images/cked.jpg);   /*选中时候的背景图*/}#box ul li.hong{    color:red;}

本博客原创文章,若要转载,请注明出处
有问题或者有错误的地方,可以留言,咱们讨论一下

1 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 未连接无线通信已关闭怎么办 手机设置路由器打不开了怎么办 手机打不开登录路由器的网址怎么办 按了光猫复位后怎么办 按了猫的复位键怎么办 望远镜的镜片小水雾是怎么办 坚果r1不断重启怎么办 忘记Wi-Fi密码了怎么办 魅蓝手机null锁住了怎么办 红米手机锁屏了怎么办 不记得锁屏密码怎么办 小米手机音量键坏了怎么办 小米6音量键坏了怎么办 小米2s开不开机怎么办 小米4不充电了怎么办 小米2开不开机怎么办 手机开机键开不了机怎么办 三星s4反复重启怎么办 小米5反复重启怎么办 电脑系统奔溃了怎么办 电脑开机后屏幕出现英文怎么办 小米4开不开机了怎么办 小米4一直显示mi怎么办 小米手机开关键失灵怎么办 小米手机开机键失灵怎么办 小米6不断重启怎么办 小米6一直重启怎么办 小米6自动重启怎么办 手机的开机键坏了怎么办 小米6频繁重启怎么办 小米6安装xp卡米怎么办 刷机失败反复重启怎么办 红米手机很卡怎么办啊 红米2a显示图标怎么办 手机一直处于开机状态怎么办 vivo手机进水开不了机怎么办 魅蓝s6锁了怎么办 pos机刷卡刷多了怎么办 红米5a开不机怎么办 魅族双亲要密码怎么办? 苹果wi-fi网速慢怎么办