JSFiddle - React, Tailwind, and code Playground
by Cykeltur
HTML
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, shrink-to-fit=no">
<title>Catalog</title>
<link rel="stylesheet" href="assets/bootstrap/css/bootstrap.min.css">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.1/dist/css/bootstrap.min.css" rel="stylesheet">
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.1/dist/js/bootstrap.bundle.min.js"></script>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Montserrat:400,400i,700,700i,600,600i">
<link rel="stylesheet" href="assets/fonts/simple-line-icons.min.css">
<link rel="stylesheet" href="assets/css/Btn-Switch-Element-1.css">
<link rel="stylesheet" href="assets/css/Btn-Switch-Element.css">
<link rel="stylesheet" href="assets/css/Contact-Form-by-Moorcam.css">
<link rel="stylesheet" href="assets/css/Features-Boxed.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/animate.css/3.5.2/animate.min.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/baguettebox.js/1.10.0/baguetteBox.min.css">
<link rel="stylesheet" href="assets/css/Multiple-Input-Select-Pills.css">
<link rel="stylesheet" href="assets/css/News-Cards-4-Columns-v2.css">
<link rel="stylesheet" href="assets/css/Pretty-Product-List.css">
<link rel="stylesheet" href="assets/css/Team-Grid.css">
<link rel="stylesheet" href="assets/css/Toggle-Switch-1.css">
<link rel="stylesheet" href="assets/css/Toggle-Switch.css">
<link rel="stylesheet" href="assets/css/Toggle-Switches.css">
<link rel="stylesheet" href="assets/css/untitled.css">
<link rel="stylesheet" href="assets/css/vanilla-zoom.min.css">
<script type="text/javascript">
$(window).load(function() {
hideTdo();
setInterval(hideTdo, 10);
$('.paginate').blueMenuSlider();
});
</script>
<script >
var open...
JavaScript
var checkboxes = document.querySelectorAll(".categories input");
for (var i = 0; i < checkboxes.length; i++) {
checkboxes[i].addEventListener("change", filter);
}
var radios = document.getElementsByName("operation");
for (var i = 0; i < radios.length; i++) {
radios[i].addEventListener("change", filter);
}
filter();
function filter() {
var i, j;
// Choose an operation
var operation = document.getElementById("op-union").checked ? "union" : "intersection";
// Get the selected categories
var checkboxes = document.querySelectorAll(".categories input");
var categories = [];
var c;
for(i = 0; i < checkboxes.length; i++) {
if(checkboxes[i].checked) {
c = checkboxes[i].value;
categories.push(c);
}
}
// Apply the filter
var items = document.querySelectorAll(".filterDiv");
var item, show;
for(i = 0; i < items.length; i++) {
item = items[i];
if(categories.length == 0) {
show = true;
} else if(operation == "union") {
// Union: Only one of the categories needs to exist
show = false;
for(j = 0; j < categories.length; j++) {
if(item.classList.contains(categories[j])) {
show = true;
break;
}
}
} else {
// Intersection: All of the categories must apply
show = true;
for(j = 0; j < categories.length; j++) {
if(!item.classList.contains(categories[j])) {
show = false;
break;
}
}
}
if(show) {
item.classList.add("show");
} else {
item.classList.remove("show");
}
}
}