css
*{
box-sizing: border-box;
user-select: none;
}
input{
display: none;
}
#s_box{
width: 60px;
height: 24px;
padding: 0 10px;
border-radius: 12px;
border: 1px solid #d2d2d2;
line-height: 24px;
color: #999999;
text-align: right;
font-size: 12px;
position: relative;
transition: all 0.3s;
}
#s_cir{
width: 16px;
height: 16px;
border-radius: 50%;
background-color: #d2d2d2;
position: absolute;
left: 5px;
top: calc(50% - 8px);
transition: all 0.3s;
}
/* 选中是的样式 */
#lab .active{
background-color: #5fb878;
border-color: #5fb878;
color: #fff;
text-align: left;
}
#lab .active #s_cir{
background-color: #fff;
left: calc(60px - 5px - 16px);
}
html
<label id="lab">
<input type="checkbox" id="checkInp">
<div id="s_box">
<div id="s_cir"></div>
OFF
</div>
</label>
js
var checkInp = document.getElementById('checkInp');
var s_box = document.getElementById('s_box');
checkInp.onchange = function(){
// 判断 input 的选中状态
if (this.checked) {//选中
s_box.className = "active";
s_box.innerHTML = '<div id="s_cir"></div>ON';
} else {//取消选中
s_box.className = "";
s_box.innerHTML = '<div id="s_cir"></div>OFF';
}
}
这里可以点击切换不同效果