Toggle button (cross browser)
This is a stylized form field toggle button. On Off / yes no
by rdillman
HTML
<div class="slider-frame">
<span class="slider-text on">No</span>
<span class="slider-button on"></span>
<span class="slider-text off">Yes</span>
</div>
<input type="text" class="slider-value" value="false">
CSS
.slider-frame {
position: relative;
display: block;
margin: 0;
padding: 0;
margin: 0 auto;
width: 85px;
height: 29px;
background-color: #D0EBEF;
border: 1px solid #B9DAE4;
-moz-border-radius: 20px;
border-radius: 20px;
-webkit-box-shadow: inset 0px 1px 8px 0 rgba(0, 0, 0, 0.25);
-moz-box-shadow: inset 0px 1px 8px 0 rgba(0, 0, 0, 0.25);
box-shadow: inset 0px 1px 8px 0 rgba(0, 0, 0, 0.25);
cursor:pointer;
}
.slider-frame .slider-button {
display: block;
margin: 0;
padding: 0;
width: 30px;
height: 27px;
line-height: 27px;
background: #FFFFFF;
background-image: -webkit-gradient(linear, left top, left bottom, from(#008399), to(#F0F6F7)); /* Saf4+, Chrome */
background-image: -webkit-linear-gradient(top, #FFFFFF, #F0F6F7); /* Chrome 10+, Saf5.1+ */
background-image: -moz-linear-gradient(top, #FFFFFF, #F0F6F7); /* FF3.6+ */
background-image: -ms-linear-gradient(top, #FFFFFF, #F0F6F7); /* IE10 */
background-image: -o-linear-gradient(top, #FFFFFF, #F0F6F7); /* Opera 11.10+ */
background-image: linear-gradient(top, #FFFFFF, #F0F6F7);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#FFFFFF, endColorstr=#F0F6F7);
-moz-border-radius: 20px;
border-radius: 20px;
border: 1px solid #B9DAE4;
-webkit-transition: all 0.25s ease-in-out;
-moz-transition: all 0.25s ease-in-out;
transition: all 0.25s ease-in-out;
color: #fff;
font-family:Helvetica;
font-size:11px;
font-weight: bold;
text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.5);
text-align: center;
cursor: pointer;
z-index:20;
}
.slider-frame .slider-button.on,
.slider-frame:hover .slider-button{
background: #F0F6F7;
background-image: -webkit-gradient(linear, left top, left bottom, from(#F0F6F7), to(#FFFFFF));
background-image: -webkit-linear-gradient(top, #F0F6F7, #FFFFFF);
background-image: -moz-linear-gradient(top, #F0F6F7, #FFFFFF);
background-image: -ms-linear-gradient(top, #F0F6F7, #FFFFFF);
...
JavaScript
$(document).ready(function() {
$('.slider-frame').toggle(function() {
$(this).find('.slider-text.on').hide();
$(this).find('.slider-button').removeClass('on');
$(this).find('.slider-text.off').show();
$('.slider-frame').css('background-color', '#0095AA');
$('.slider-value').val(true);
}, function() {
$(this).find('.slider-text.off').hide();
$(this).find('.slider-button').addClass('on');
$(this).find('.slider-text.on').show();
$('.slider-frame').css('background-color', '#D0EBEF');
$('.slider-value').val(false);
});
});