Let’s say you have some HTML/CSS switches in place of a traditional checkbox.
jQuery makes it easy to toggle switches on or off. For example:
function toggle(){
$('.slider').click();
}
Which can be called in a button like so:
<button type="button" class="btn btn-primary" onClick="toggle();">Toggle</button>
For example:
See the Pen Toggle Switches! (jQuery) by Chris Nielsen (@Chris_Nielsen) on CodePen.
Note: This same jQuery can be triggered without clicking a button by simply calling the function in response to some other trigger or condition.
Here is what the HTML looks like:
<div class="box">
<h2><b>Toggle Switch</b></h2>
<!-- gray square -->
<label class="switch">
<input type="checkbox">
<span class="slider"></span>
</label>
<!-- orange square -->
<label class="switch">
<input type="checkbox" checked>
<span class="slider"></span>
</label>
<br><br>
<!-- gray rounded -->
<label class="switch">
<input type="checkbox">
<span class="slider round"></span>
</label>
<!-- orange rounded -->
<label class="switch">
<input type="checkbox" checked>
<span class="slider round"></span>
</label>
<br><br>
<button type="button" class="btn btn-primary"
onClick="toggle();">Toggle</button>
</div>
And here is the CSS:
body {
font-family: 'Open Sans', sans-serif;
background-color: #673AB7;
}
.switch {
position: relative;
display: inline-block;
width: 60px;
height: 30px;
}
.switch input {display:none;}
.slider {
position: absolute;
cursor: pointer;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-color: #ccc;
-webkit-transition: .4s;
transition: .4s;
}
.slider:before {
position: absolute;
content: "";
height: 24px;
width: 24px;
left: 4px;
bottom: 3px;
background-color: white;
-webkit-transition: .2s;
transition: .2s;
}
input:checked + .slider {
background-color: #D84315;
}
input:focus + .slider {
box-shadow: 0 0 1px #D84315;
}
input:checked + .slider:before {
-webkit-transform: translateX(28px);
-ms-transform: translateX(28px);
transform: translateX(28px);
}
/* Rounded sliders */
.slider.round {
border-radius: 28px;
}
.slider.round:before {
border-radius: 50%;
}
.box {
margin: 25px;
border: 1px solid #ccc;
width: 300px;
padding: 0px 30px 30px 30px;
background-color: white;
}
h2 {
padding-bottom: 25px;
}
.btn {
border-radius: 14px;
border: none;
padding: 5px 15px 5px 15px;
font-size: 16px;
}
.btn {
border-radius: 14px;
border: none;
}
For more information about the jQuery .click() function, see:
.click()