一、背景
想实现一个开关的按钮,来触发一些操作,网上找了总感觉看着别扭,忽然想到iphone的开关挺好,搞一个
二、代码实现
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>开关按钮</title><style>.switch {position: relative;display: inline-block;width: 60px;height: 34px;}.switch input {opacity: 0;width: 0;height: 0;}.slider {position: absolute;cursor: pointer;top: 0;left: 0;right: 0;bottom: 0;background-color: #ccc;-webkit-transition: .4s;transition: .4s;border-radius: 34px;}.slider:before {position: absolute;content: "";height: 26px;width: 26px;left: 4px;bottom: 4px;background-color: white;-webkit-transition: .4s;transition: .4s;border-radius: 50%;}input:checked + .slider {background-color: #4CD964;}input:focus + .slider {box-shadow: 0 0 1px #4CD964;}input:checked + .slider:before {-webkit-transform: translateX(26px);-ms-transform: translateX(26px);transform: translateX(26px);}.slider.round {border-radius: 34px;}.slider.round:before {border-radius: 50%;}</style>
</head>
<body>
<div><label class="switch"><input type="checkbox" id="mySwitch" onchange="updateStatus()"><span class="slider round"></span></label>
</div>
<script>function updateStatus() {let switchStatus = document.getElementById("mySwitch").checked;if (switchStatus) {console.log("已开启");} else {console.log("已关闭");}}
</script>
</body>
</html>
效果:
关闭:
开启: