js自定义修改复选框单选框样式,清除复选框单选框默认样式
之前做项目的时候,也遇到过需要按照设计稿把<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;
}
js自定义修改复选框单选框样式,清除复选框单选框默认样式的更多相关文章
- CSS3过渡结束监听事件,清除/修改表单元素的一些默认样式
document.querySelector('div').addEventListener('transitionEnd',function(){ console.log('过度结束') }) 如果 ...
- Android UI 统一修改Button控件的样式,以及其它系统控件的默认样式
先介绍下修改原理:首先打开位于android.widget包下面的Button.java文件,这里有一句关键的代码如下: public Button(Context context, Attribut ...
- Vue——解决使用第三方组件库时无法修改默认样式的问题(使用 /deep/ )
最近在开发一个基于Vue的后台管理系统,其中使用了element-ui第三方ui组件库.使用过组件库的人都知道,第三方组件往往会有一些默认的样式,而有些又是我们想要改变的. 一.基础(了解 <s ...
- HTML复选框checkbox默认样式修改
此方法可以将复选框的默认样式替换成任意样式.如图: 未选择: 选择时: 思路:将复选框隐藏,利用lebal元素的焦点传递特性,用lebal的样式替代复选框. 代码如下: <!DOCTYPE ht ...
- js自定义弹出框
js自定义弹出框: 代码如下 <html> <head><title>自定义弹出对话框</title> <style type ="te ...
- 【jQuery】复选框的全选、反选,推断哪些复选框被选中
本文与<[JavaScript]复选框的全选.反选.推断哪些复选框被选中>(点击打开链接)为姊妹篇,把里面内容再与jQuery框架中实现一次,相同做到例如以下的效果: 布局还是相同的布局, ...
- springMvc接收ajax数组参数,以及jquery复选框选中、反选、全选、全不选
一.复选框选中.反选.全选.全不选 html代码: <input type='checkbox' name='menuCheckBox' value='10' >苹果 <input ...
- 复选框(checkbox)、多选框
1.需求分析 可同时选中多个选项,实现全选.全不选.反选等功能. 2.技术分析 基础的HTML.CSS.JavaScript. 3.详细分析 3.1 HTML部分 图示是一个列表加底部一段文字说明,列 ...
- jQuery实现复选框的全选、反选、并且根据复选框的<checked属性>控制多个对应div的显示/隐藏
<!doctype html><html> <head> <meta charset="utf-8"> <title>j ...
随机推荐
- java Future模式的使用
一.Future模式的使用. Future模式简述 传统单线程环境下,调用函数是同步的,必须等待程序返回结果后,才可进行其他处理. Futrue模式下,调用方式改为异步. Futrue模式的核心在于: ...
- JavaScript之函数存储[摘]
引用文献:js忍者秘籍 var store = {//demo:函数存储----存储一组独立的函数 nextId:1, cache:{}, add:function(fn){ if(!fn.id){ ...
- H.264 SVC
视频厂商POLYCOM,VIDYO和RADVISION等都推出H.264 SVC技术.针对H.264 SVC技术做个介绍. CISCO和POLYCOM都提供了免版税的H.264 SVC的版本. 其中o ...
- 第三周结对项目--小学生四则运算CAI软件汇报及总结(UI/web)
前言: 这周是和我队友苏卫喜一起结对开发,我主要是写项目文档需求分析,她是通过我的需求文档来进行做思维导图,之后我们通过思维导图一起讨论用户界面设计. 以下就是我的需求分析1.0版本 1. 软件名 ...
- win10如何获得管理员权限_百度经验
win10如何获得管理员权限_百度经验http://jingyan.baidu.com/article/0aa223755448db88cd0d6450.html 在右下方任务栏的“搜索web和win ...
- Maven聚合工程的使用
创建一个service模块 接下来,在该项目中创建一个接口 创建一个实现类,并实现接口 在sm1234-web项目中,调用service的方法,需要在该项目的pom.xml中引入依赖Service模块 ...
- Android Handler面试解析
- BN讲解(转载)
本文转载自:http://blog.csdn.net/shuzfan/article/details/50723877 本次所讲的内容为Batch Normalization,简称BN,来源于< ...
- 一篇不错的CUDA入门
鉴于自己的毕设需要使用GPU CUDA这项技术,想找一本入门的教材,选择了Jason Sanders等所著的书<CUDA By Example an Introduction to Genera ...
- STOMP Over WebSocket
Show Table of Contents What is STOMP? STOMP is a simple text-orientated messaging protocol. It defin ...