Tombol Switch dengan CSS


Kali ini kita akan mencoba membuat tombol geser kiri kanan (switch button) dengan menggunakan CSS lalu mengambil statusnya dengan javascript.
Kita manfaatkan properti CSS: ‘appearance’ pada elemen input checkbox untuk manipulasi tampilan field checkbox biasa menjadi tombol geser.
Kita juga menfaatkan pseudo-element ‘:before’ untuk manipulasi tampilan content di dalam tombol switch.

Berikut coding selengkapnya.

<!doctype html>
<html lang="en">
<head>
	<meta charset="utf-8">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<title>CSS Switch Botton</title>
	<style>
	.toggle {
	  -webkit-appearance: none;
	  -moz-appearance: none;
	  appearance: none;
	  width: 98px;
	  height: 30px;
	  position: relative;
	  border-radius: 20px;
	  display: inline-block;
	  overflow: hidden;
	  outline: none;
	  border: none;
	  cursor: pointer;
	  background-color: #707070;
	  transition: background-color ease 0.3s;
	}
	.toggle:before {
	  content: "Depan Belakang";
	  display: block;
	  position: absolute;
	  z-index: 2;
	  width: 25px;
	  height: 25px;
	  background: #fff;
	  left: 2px;
	  top: 2px;
	  border-radius: 50%;
	  font:bold 12px/28px Helvetica;
	  text-indent: -40px;
	  word-spacing: 30px;
	  color: #fff;
	  text-shadow: -1px -1px rgba(0,0,0,0.15);
	  white-space: nowrap;
	  box-shadow: 0 1px 2px rgba(0,0,0,0.2);
	  transition: all cubic-bezier(0.3, 1.5, 0.7, 1) 0.3s;
	}
	.toggle:checked {background: #4CD964;}
	.toggle:checked:before {left:70px;}
	</style>
</head>
<body>
<h2 id="status">Belakang</h2>
<input id="swbtn" class="toggle" type="checkbox" />
<script>
	let swbtn = document.getElementById("swbtn");
	let status = document.getElementById("status");
	swbtn.addEventListener("click", function(){
		if (swbtn.checked) {
			status.innerHTML = "Depan";
		} else if (!swbtn.checked)	{
			status.innerHTML = "Belakang";
		}
	});
</script>
</body>
</html>

Selamat mencoba. Semoga bermanfaat.

Sumber: https://danklammer.com/articles/simple-css-toggle-switch/

Leave your comment