html5中文学习网

您的位置: 首页 > 网页制作 > css教程 » 正文

css3和jquery实现自定义checkbox和radiobox组件_css3_CSS_网页制作

[ ] 已经帮助:人解决问题
点评:这篇文章主要介绍了css3和jquery实现自定义美化Checkbox和Radiobox组件的示例,需要的朋友可以参考下

主要思路是利用隐藏原来的checkbox和radiobox,用一个div来模拟checkbox/radiobox,并使用jQuery来完成选择切换时的动画效果。kEwHTML5中文学习网 - HTML5先行者学习网


复制代码
代码如下:
kEwHTML5中文学习网 - HTML5先行者学习网
<ul>kEwHTML5中文学习网 - HTML5先行者学习网
<li>kEwHTML5中文学习网 - HTML5先行者学习网
<p>Gender:</p>kEwHTML5中文学习网 - HTML5先行者学习网
</li>kEwHTML5中文学习网 - HTML5先行者学习网
<li>kEwHTML5中文学习网 - HTML5先行者学习网
<input type="radio" name="radio-btn" />Male</li>kEwHTML5中文学习网 - HTML5先行者学习网
<li>kEwHTML5中文学习网 - HTML5先行者学习网
<input type="radio" name="radio-btn" />Female</li>kEwHTML5中文学习网 - HTML5先行者学习网
</ul>kEwHTML5中文学习网 - HTML5先行者学习网
<ul>kEwHTML5中文学习网 - HTML5先行者学习网
<li>kEwHTML5中文学习网 - HTML5先行者学习网
<p>Favorite music:</p>kEwHTML5中文学习网 - HTML5先行者学习网
</li>kEwHTML5中文学习网 - HTML5先行者学习网
<li>kEwHTML5中文学习网 - HTML5先行者学习网
<input type="checkbox" name="check-box" /> <span>Pop music</span></p><p> </li>kEwHTML5中文学习网 - HTML5先行者学习网
<li>kEwHTML5中文学习网 - HTML5先行者学习网
<input type="checkbox" name="check-box" /> <span>Rock music</span></p><p> </li>kEwHTML5中文学习网 - HTML5先行者学习网
<li>kEwHTML5中文学习网 - HTML5先行者学习网
<input type="checkbox" name="check-box" /> <span>Rap music</span></p><p> </li>kEwHTML5中文学习网 - HTML5先行者学习网
<li>kEwHTML5中文学习网 - HTML5先行者学习网
<input type="checkbox" name="check-box" /> <span>Hiphop music</span></p><p> </li>kEwHTML5中文学习网 - HTML5先行者学习网
</ul>kEwHTML5中文学习网 - HTML5先行者学习网
kEwHTML5中文学习网 - HTML5先行者学习网

然后我们用jQuery代码来为每一个checkbox和radiobox创建一个div,这个div的classname为check-box和radio-btn。kEwHTML5中文学习网 - HTML5先行者学习网


复制代码
代码如下:
kEwHTML5中文学习网 - HTML5先行者学习网
$('input[name="radio-btn"]').wrap('<div class="radio-btn"><i></i></div>');kEwHTML5中文学习网 - HTML5先行者学习网
$('input[name="check-box"]').wrap('<div class="check-box"><i></i></div>');kEwHTML5中文学习网 - HTML5先行者学习网
kEwHTML5中文学习网 - HTML5先行者学习网

那么我们接下来要让原来的checkbox隐藏,同时设置模拟div的样式:kEwHTML5中文学习网 - HTML5先行者学习网


复制代码
代码如下:
kEwHTML5中文学习网 - HTML5先行者学习网
.radio-btn input[type="radio"], .check-box input[type="checkbox"] {kEwHTML5中文学习网 - HTML5先行者学习网
visibility: hidden;kEwHTML5中文学习网 - HTML5先行者学习网
}kEwHTML5中文学习网 - HTML5先行者学习网
kEwHTML5中文学习网 - HTML5先行者学习网


复制代码
代码如下:
kEwHTML5中文学习网 - HTML5先行者学习网
.check-box {kEwHTML5中文学习网 - HTML5先行者学习网
width: 22px;kEwHTML5中文学习网 - HTML5先行者学习网
height: 22px;kEwHTML5中文学习网 - HTML5先行者学习网
cursor: pointer;kEwHTML5中文学习网 - HTML5先行者学习网
display: inline-block;kEwHTML5中文学习网 - HTML5先行者学习网
margin: 2px 7px 0 0;kEwHTML5中文学习网 - HTML5先行者学习网
position: relative;kEwHTML5中文学习网 - HTML5先行者学习网
overflow: hidden;kEwHTML5中文学习网 - HTML5先行者学习网
box-shadow: 0 0 1px #ccc;kEwHTML5中文学习网 - HTML5先行者学习网
-webkit-border-radius: 3px;kEwHTML5中文学习网 - HTML5先行者学习网
-moz-border-radius: 3px;kEwHTML5中文学习网 - HTML5先行者学习网
border-radius: 3px;kEwHTML5中文学习网 - HTML5先行者学习网
background: rgb(255, 255, 255);kEwHTML5中文学习网 - HTML5先行者学习网
background: -moz-linear-gradient(top, rgba(255, 255, 255, 1) 0%, rgba(246, 246, 246, 1) 47%, rgba(237, 237, 237, 1) 100%);kEwHTML5中文学习网 - HTML5先行者学习网
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, rgba(255, 255, 255, 1)), color-stop(47%, rgba(246, 246, 246, 1)), color-stop(100%, rgba(237, 237, 237, 1)));kEwHTML5中文学习网 - HTML5先行者学习网
background: -webkit-linear-gradient(top, rgba(255, 255, 255, 1) 0%, rgba(246, 246, 246, 1) 47%, rgba(237, 237, 237, 1) 100%);kEwHTML5中文学习网 - HTML5先行者学习网
background: -o-linear-gradient(top, rgba(255, 255, 255, 1) 0%, rgba(246, 246, 246, 1) 47%, rgba(237, 237, 237, 1) 100%);kEwHTML5中文学习网 - HTML5先行者学习网
background: -ms-linear-gradient(top, rgba(255, 255, 255, 1) 0%, rgba(246, 246, 246, 1) 47%, rgba(237, 237, 237, 1) 100%);kEwHTML5中文学习网 - HTML5先行者学习网
background: linear-gradient(to bottom, rgba(255, 255, 255, 1) 0%, rgba(246, 246, 246, 1) 47%, rgba(237, 237, 237, 1) 100%);kEwHTML5中文学习网 - HTML5先行者学习网
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#ededed', GradientType=0);kEwHTML5中文学习网 - HTML5先行者学习网
border: 1px solid #ccc;kEwHTML5中文学习网 - HTML5先行者学习网
}kEwHTML5中文学习网 - HTML5先行者学习网
.check-box i {kEwHTML5中文学习网 - HTML5先行者学习网
background: url('css/check_mark.png') no-repeat center center;kEwHTML5中文学习网 - HTML5先行者学习网
position: absolute;kEwHTML5中文学习网 - HTML5先行者学习网
left: 3px;kEwHTML5中文学习网 - HTML5先行者学习网
bottom: -15px;kEwHTML5中文学习网 - HTML5先行者学习网
width: 16px;kEwHTML5中文学习网 - HTML5先行者学习网
height: 16px;kEwHTML5中文学习网 - HTML5先行者学习网
opacity: .5;kEwHTML5中文学习网 - HTML5先行者学习网
-webkit-transition: all 400ms ease-in-out;kEwHTML5中文学习网 - HTML5先行者学习网
-moz-transition: all 400ms ease-in-out;kEwHTML5中文学习网 - HTML5先行者学习网
-o-transition: all 400ms ease-in-out;kEwHTML5中文学习网 - HTML5先行者学习网
transition: all 400ms ease-in-out;kEwHTML5中文学习网 - HTML5先行者学习网
-webkit-transform:rotateZ(-180deg);kEwHTML5中文学习网 - HTML5先行者学习网
-moz-transform:rotateZ(-180deg);kEwHTML5中文学习网 - HTML5先行者学习网
-o-transform:rotateZ(-180deg);kEwHTML5中文学习网 - HTML5先行者学习网
transform:rotateZ(-180deg);kEwHTML5中文学习网 - HTML5先行者学习网
}kEwHTML5中文学习网 - HTML5先行者学习网
.checkedBox {kEwHTML5中文学习网 - HTML5先行者学习网
-moz-box-shadow: inset 0 0 5px 1px #ccc;kEwHTML5中文学习网 - HTML5先行者学习网
-webkit-box-shadow: inset 0 0 5px 1px #ccc;kEwHTML5中文学习网 - HTML5先行者学习网
box-shadow: inset 0 0 5px 1px #ccc;kEwHTML5中文学习网 - HTML5先行者学习网
border-bottom-color: #fff;kEwHTML5中文学习网 - HTML5先行者学习网
}kEwHTML5中文学习网 - HTML5先行者学习网
.checkedBox i {kEwHTML5中文学习网 - HTML5先行者学习网
bottom: 2px;kEwHTML5中文学习网 - HTML5先行者学习网
-webkit-transform:rotateZ(0deg);kEwHTML5中文学习网 - HTML5先行者学习网
-moz-transform:rotateZ(0deg);kEwHTML5中文学习网 - HTML5先行者学习网
-o-transform:rotateZ(0deg);kEwHTML5中文学习网 - HTML5先行者学习网
transform:rotateZ(0deg);kEwHTML5中文学习网 - HTML5先行者学习网
}kEwHTML5中文学习网 - HTML5先行者学习网
/*Custom radio button*/kEwHTML5中文学习网 - HTML5先行者学习网
.radio-btn {kEwHTML5中文学习网 - HTML5先行者学习网
width: 20px;kEwHTML5中文学习网 - HTML5先行者学习网
height: 20px;kEwHTML5中文学习网 - HTML5先行者学习网
display: inline-block;kEwHTML5中文学习网 - HTML5先行者学习网
float: left;kEwHTML5中文学习网 - HTML5先行者学习网
margin: 3px 7px 0 0;kEwHTML5中文学习网 - HTML5先行者学习网
cursor: pointer;kEwHTML5中文学习网 - HTML5先行者学习网
position: relative;kEwHTML5中文学习网 - HTML5先行者学习网
-webkit-border-radius: 100%;kEwHTML5中文学习网 - HTML5先行者学习网
-moz-border-radius: 100%;kEwHTML5中文学习网 - HTML5先行者学习网
border-radius: 100%;kEwHTML5中文学习网 - HTML5先行者学习网
border: 1px solid #ccc;kEwHTML5中文学习网 - HTML5先行者学习网
box-shadow: 0 0 1px #ccc;kEwHTML5中文学习网 - HTML5先行者学习网
background: rgb(255, 255, 255);kEwHTML5中文学习网 - HTML5先行者学习网
background: -moz-linear-gradient(top, rgba(255, 255, 255, 1) 0%, rgba(246, 246, 246, 1) 47%, rgba(237, 237, 237, 1) 100%);kEwHTML5中文学习网 - HTML5先行者学习网
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, rgba(255, 255, 255, 1)), color-stop(47%, rgba(246, 246, 246, 1)), color-stop(100%, rgba(237, 237, 237, 1)));kEwHTML5中文学习网 - HTML5先行者学习网
background: -webkit-linear-gradient(top, rgba(255, 255, 255, 1) 0%, rgba(246, 246, 246, 1) 47%, rgba(237, 237, 237, 1) 100%);kEwHTML5中文学习网 - HTML5先行者学习网
background: -o-linear-gradient(top, rgba(255, 255, 255, 1) 0%, rgba(246, 246, 246, 1) 47%, rgba(237, 237, 237, 1) 100%);kEwHTML5中文学习网 - HTML5先行者学习网
background: -ms-linear-gradient(top, rgba(255, 255, 255, 1) 0%, rgba(246, 246, 246, 1) 47%, rgba(237, 237, 237, 1) 100%);kEwHTML5中文学习网 - HTML5先行者学习网
background: linear-gradient(to bottom, rgba(255, 255, 255, 1) 0%, rgba(246, 246, 246, 1) 47%, rgba(237, 237, 237, 1) 100%);kEwHTML5中文学习网 - HTML5先行者学习网
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#ededed', GradientType=0);kEwHTML5中文学习网 - HTML5先行者学习网
}kEwHTML5中文学习网 - HTML5先行者学习网
.checkedRadio {kEwHTML5中文学习网 - HTML5先行者学习网
-moz-box-shadow: inset 0 0 5px 1px #ccc;kEwHTML5中文学习网 - HTML5先行者学习网
-webkit-box-shadow: inset 0 0 5px 1px #ccc;kEwHTML5中文学习网 - HTML5先行者学习网
box-shadow: inset 0 0 5px 1px #ccc;kEwHTML5中文学习网 - HTML5先行者学习网
}kEwHTML5中文学习网 - HTML5先行者学习网
.radio-btn i {kEwHTML5中文学习网 - HTML5先行者学习网
border: 1px solid #E1E2E4;kEwHTML5中文学习网 - HTML5先行者学习网
width: 10px;kEwHTML5中文学习网 - HTML5先行者学习网
height: 10px;kEwHTML5中文学习网 - HTML5先行者学习网
position: absolute;kEwHTML5中文学习网 - HTML5先行者学习网
left: 4px;kEwHTML5中文学习网 - HTML5先行者学习网
top: 4px;kEwHTML5中文学习网 - HTML5先行者学习网
-webkit-border-radius: 100%;kEwHTML5中文学习网 - HTML5先行者学习网
-moz-border-radius: 100%;kEwHTML5中文学习网 - HTML5先行者学习网
border-radius: 100%;kEwHTML5中文学习网 - HTML5先行者学习网
}kEwHTML5中文学习网 - HTML5先行者学习网
.checkedRadio i {kEwHTML5中文学习网 - HTML5先行者学习网
background-color: #898A8C;kEwHTML5中文学习网 - HTML5先行者学习网
}kEwHTML5中文学习网 - HTML5先行者学习网
kEwHTML5中文学习网 - HTML5先行者学习网

上面这段CSS3代码就是用样式来自定义div,让div的样式和checkbox和radiobox一样。kEwHTML5中文学习网 - HTML5先行者学习网

最后我们来模拟点击选中和取消选中,这部分也是用jQuery来实现:kEwHTML5中文学习网 - HTML5先行者学习网


复制代码
代码如下:
kEwHTML5中文学习网 - HTML5先行者学习网
$(".radio-btn").on('click', function () {kEwHTML5中文学习网 - HTML5先行者学习网
var _this = $(this),kEwHTML5中文学习网 - HTML5先行者学习网
block = _this.parent().parent();kEwHTML5中文学习网 - HTML5先行者学习网
block.find('input:radio').attr('checked', false);kEwHTML5中文学习网 - HTML5先行者学习网
block.find(".radio-btn").removeClass('checkedRadio');kEwHTML5中文学习网 - HTML5先行者学习网
_this.addClass('checkedRadio');kEwHTML5中文学习网 - HTML5先行者学习网
_this.find('input:radio').attr('checked', true);kEwHTML5中文学习网 - HTML5先行者学习网
});kEwHTML5中文学习网 - HTML5先行者学习网
kEwHTML5中文学习网 - HTML5先行者学习网


复制代码
代码如下:
kEwHTML5中文学习网 - HTML5先行者学习网
$.fn.toggleCheckbox = function () {kEwHTML5中文学习网 - HTML5先行者学习网
this.attr('checked', !this.attr('checked'));kEwHTML5中文学习网 - HTML5先行者学习网
}kEwHTML5中文学习网 - HTML5先行者学习网
$('.check-box').on('click', function () {kEwHTML5中文学习网 - HTML5先行者学习网
$(this).find(':checkbox').toggleCheckbox();kEwHTML5中文学习网 - HTML5先行者学习网
$(this).toggleClass('checkedBox');kEwHTML5中文学习网 - HTML5先行者学习网
});kEwHTML5中文学习网 - HTML5先行者学习网
kEwHTML5中文学习网 - HTML5先行者学习网

这段代码可以让选中和取消选中时产生一点小小的动画。kEwHTML5中文学习网 - HTML5先行者学习网

(责任编辑:)
推荐书籍
推荐资讯
关于HTML5先行者 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助