Coder Wrap provides free to use snippets Coder Wrap provides free to use snippets

Back to Others
Preview Source Code
Download
HTML
CSS
/*Typeo CSS only Start*/
* {
	box-sizing: border-box;
}
body {
	margin: 0px;
	font-family: arial;
	font-size: 16px;
}
h4 {
	padding: 0px;
	margin: 0px;
}
/*Typeo CSS only End*/
.datafilter-main {
	max-width: 1000px;
	width: 100%;
	margin: auto;
}
.filterlist {
	display: flex;
	flex-flow: row wrap;
	width: 100%;
	list-style: none;
	margin: 0px;
	padding: 0px;
	background-color: #818181;
}
.filterlist li {
	cursor: pointer;
	padding: 10px 14px;
	border-left: #ccc 1px solid;
	color: #fff;
}
.filterlist li:hover,
.filterlist li.active {
	color: #fff;
	background-color: #000;
}
.fiter-data-main {
	width: 100%;
	border: #ccc 1px solid;
}
.fiter-data-main .fiter-data-list {
	padding: 15px;
}
.fiter-data-main .item {
	display: none;
}
.fiter-data-main .item.show {
	display: block;
}
.fiter-data-main .item.hide {
	display: none;
}
.fiter-data-main .notfound {
	display: none;
}
.notfound {
	text-align: center;
	padding: 20px;
}
JS
document.addEventListener("DOMContentLoaded", function() {
  var filterListItems = document.querySelectorAll('.filterlist li');
  
  filterListItems.forEach(function(item) {
    item.addEventListener('click', function() {
      filterListItems.forEach(function(item) {
        item.classList.remove('active');
      });
      
      this.classList.add('active');
      
      var ele = this;
      var allItem = document.querySelectorAll('.fiter-data-main .fiter-data-list .item');
      
      allItem.forEach(function(item) {
        if (ele.dataset.tab === item.dataset.show) {
          item.classList.remove('hide');
          item.classList.add('show');
        } else {
          item.classList.remove('show');
          item.classList.add('hide');
        }
      });
      
      var hiddenItem = document.querySelectorAll('.fiter-data-main .fiter-data-list .item.hide');
      var notFoundElement = document.querySelector('.notfound');
      
      if (allItem.length === hiddenItem.length) {
        notFoundElement.style.display = 'block';
      } else {
        notFoundElement.style.display = 'none';
      }
    });
  });
});

Related Snippets

Leave a comment

Your email address will not be published. Required fields are marked *