Jquery模拟单选按钮与多选按钮
2015-05-29 15:42
423 查看
我们都知道原生的单选与多选按钮样式不能通过CSS来改变,然后还有更加让人不爽的是在不同浏览器下他们的样式也会有很大的差异。
估计很多人都和我一样遇到过,设计师提供效果图中的单选按钮与多选按钮都不是像原生的那样,然而设计要求我们必须做出跟他们效果图上面一样的。
这个时候我们只能通过JS来模拟了。
下面是HTML代码:
然后CSS代码:
最后是JavaScript代码:
估计很多人都和我一样遇到过,设计师提供效果图中的单选按钮与多选按钮都不是像原生的那样,然而设计要求我们必须做出跟他们效果图上面一样的。
这个时候我们只能通过JS来模拟了。
下面是HTML代码:
<span style="font-family: Arial, Helvetica, sans-serif;"></span><pre name="code" class="html"><!DOCTYPE html> <html> <head> <script src="https://code.jquery.com/jquery-1.11.1.min.js"></script> <meta charset="utf-8"> <title>JS Bin</title> </head> <body> <h4>1.请选择您的性别</h4> <div class="radio-box radio-cur" name="sex"> <label></label> <span>男</span> <input type="radio" name="sex" class="fn-hide" /> </div> <div class="radio-box" name="sex"> <label></label> <span>女</span> <input type="radio" name="sex" class="fn-hide" /> </div> <div class="radio-box" name="sex"> <label></label> <span>不男不女?</span> <input type="radio" name="sex" class="fn-hide" /> </div> <h4>2.请选择您喜欢的球星</h4> <div class="check-box check-cur"> <label></label> <span>科比</span> <input type="checkbox" name="" class="fn-hide" checked /> </div> <div class="check-box"> <label></label> <span>韦德</span> <input type="checkbox" name="" class="fn-hide" /> </div> <div class="check-box"> <label></label> <span>维斯布鲁克</span> <input type="checkbox" name="" class="fn-hide" /> </div> <div class="check-box"> <label></label> <span>库里</span> <input type="checkbox" name="" class="fn-hide" /> </div> <div class="check-box"> <label></label> <span>杜兰特</span> <input type="checkbox" name="" class="fn-hide" /> </div> <div class="check-box"> <label></label> <span>安东尼</span> <input type="checkbox" name="" class="fn-hide" /> </div> <div class="check-box"> <label></label> <span>戴维斯</span> <input type="checkbox" name="" class="fn-hide" /> </div> <div class="check-box"> <label></label> <span>詹姆斯</span> <input type="checkbox" name="" class="fn-hide" /> </div> </body> </html>
然后CSS代码:
<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);"></span><pre name="code" class="css">* { margin:0; padding:0; } h4 { margin-top:20px; } body { margin-left:30px; } .fn-hide { display:none; } .radio-box, .check-box { display:block; margin:10px; cursor: pointer; } .radio-box label { float:left; width:12px; height:12px; margin:2px 5px 2px 8px; border:#0e5 2px solid; border-radius:50%; cursor: pointer; /* 用背景替代边框 */ } .check-box label { float:left; width:10px; height:10px; margin:2px 6px 2px 9px; border:#000 2px solid; cursor: pointer; } .radio-cur label, .check-cur label { border:#f00 2px solid; }
最后是JavaScript代码:
/* 注:name属性值相同的元素只能一个被选中; */ $(function(){ // 通过click事件来模拟单选按钮 $(document).on("click", ".radio-box", function(){ // 获取单选按钮的name属性值; var objName = $(this).attr("name"); // 删除被选中元素和高亮样式radio-cur; $(".radio-box[name='"+objName+"']").removeClass("radio-cur"); // 为点击的元素添加高亮样式; $(this).addClass("radio-cur").find("input[type='radio']").prop("checked", true); }); // 通过click事件来模拟多选按钮; $(document).on("click", ".check-box", function(){ // 判断该元素被选中与否并返回与之对应的样式; return $(this).hasClass("check-cur") ? $(this).removeClass("check-cur").find("input[type='checkbox']").prop("checked",false) : $(this).addClass("check-cur").find("input[type='checkbox']").prop("checked",true); }); });
相关文章推荐
- jQuery Validate 表单验证
- Jquery Validate 正则表达式实用验证代码大全
- jQuery on()方法
- HTML、HTML DOM、Javascript、CSS以及jQuery使用小结
- jQuery 验证表单
- jquery 监听回车事件
- jQuery html()等方法介绍
- jQuery的三种$()
- jquery方式的ajax方法失效,在火狐里边调试显示$.ajax为undefined
- Jquery 之 日常积累(一)
- jquery银行卡输入控件使用
- jquery.pagination结合jquery.tmpl封装前台分页--纯js实现与后端语言无关--适合所有前台分页情况
- 适用于多种设备的的滑块幻灯片插件--jquery插件Swiper
- 使用jquery实现上下左右移动效果
- jQuery 动画 - animate() 方法
- jQuery serializeArray() 方法的一些注意事项
- 9.使用原生js实现类似于jquery的动画
- 不定义JQuery插件,不要说会JQuery
- JQuery+CSS实现图片上放置按钮的方法
- springMVC,jQuery ajax传值的中文乱码处理