Carregando...

data filter javascript

Postado: 8 de março de 2023 Tempo de Leitura: 2 Minutos

data filter javascript

Como fazer abas de navegação com html, css e javascript

Neste tutorial vamos criar uma estrutura de abas com HTML, CSS e javascript.

Nesta seção, projetaremos uma estrutura simples na tag <ul><li>, <img>, e a <a> para inserir o link de destino. 

Usaremos as classes (.abas .tudo .sucos, .salgados e .refrigerantes) para dar o formato e estilizar com css.

Essas é a tags e classes que usaremos para criar a nossas Abas de navegação.

Vamos Adicionar o HTML

    <ul class="abas">

      <li><a href="" class="tudo" data-filter="tudo">Todos</a></li>
      <li><a href="" class="sucos" data-filter="sucos">Sucos</a></li>
      <li><a href="" class="salgados" data-filter="salgados">Salgados</a></li>
      <li><a href="" class="refrigerantes" data-filter="refrigerantes">Refrigerantes</a></li>

    </ul>


    <ul class="lista-categoria">

        <li class="salgados" data-categoria="salgados"> 
            <img src="uploads/salgados.jpg" alt="salgados" title="salgados">
        </li>

        <li class="sucos" data-categoria="sucos"> 
            <img src="uploads/sucos.jpg" alt="sucos" title="Sucos">
        </li>

        <li class="salgados" data-categoria="salgados"> 
            <img src="uploads/salgados.jpg" alt="salgados" title="salgados">
        </li>

        <li class="salgados" data-categoria="salgados"> 
            <img src="uploads/salgados.jpg" alt="salgados" title="salgados">
        </li>

        <li class="refrigerantes" data-categoria="refrigerantes"> 
            <img src="uploads/refrigerantes.jpg" alt="refrigerantes" title="Refrigerantes">
        </li>

        <li class="sucos" data-categoria="sucos"> 
            <img src="uploads/sucos.jpg" alt="sucos" title="Sucos">
        </li>

        <li class="refrigerantes" data-categoria="refrigerantes"> 
            <img src="uploads/refrigerantes.jpg" alt="refrigerantes" title="Refrigerantes">
        </li>

        <li class="sucos" data-categoria="sucos"> 
            <img src="uploads/sucos.jpg" alt="sucos" title="Sucos">
        </li>


     </ul>

Vamos Adicionar o CSS

Nesta seção, usaremos algumas propriedades CSS para estilizar a  nossa Tab de navegação.

ul, li {
  list-style: none;
}

img {
  width: 100%;
}

a {
  text-decoration: none;
}

.abas {

  display: block;
  margin: 0px 0 10px;
  float: left;
  width: 100%;

}

.abas li {

  margin: 0 0px;

}

.abas li a {

    padding: 8px 20px;
    background: #007cff;
    color: #fff;
    font-size: 0.9em;
    border-radius: 3px;
    transition: 0.3s ease;
    display: block;
    float: left;
    margin: 2px;

}

.abas li.ativo { 
    background-color:#242424; 
    color:#fff;  
}

.abas li a:hover {

  opacity: 0.8;

}

.lista-categoria {

  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  width: 100%;
  max-width: 1200px;
  margin: auto;

}

.lista-categoria li {
  
  width: calc(100% - 5px);
  margin-right: 5px;
  margin-bottom: 5px;

}

.lista-categoria li img {

  width: 100%;

}

.animacao {

  opacity: 1;
  animation: 0.6s zoom-in;

}

@keyframes zoom-in {
  0% {
    opacity: 0.3;
    transform: scale(0.8);
  }
  100% {
    opacity: 1;
    transform: none;
  }
}

/*RESPONSIVO*/
/*768PX BREAKPOINT*/
@media (min-width:48em){

    .abas { display: flex; justify-content: center;  margin: 30px 0 40px; }

    .abas li { margin: 0 10px; }

    .abas li a { padding: 10px 30px; font-size: 1em; }

    .lista-categoria      { width: calc(100% + 30px); }
    
    .lista-categoria li   { width: calc(33.3333% - 20px); margin-right: 20px; margin-bottom: 20px; }

} 

Vamos adicionar o script para filtrar as abas

<script src="https://code.jquery.com/jquery-3.5.1.js" integrity="sha256-QWo7LDvxbWT2tbbQ97B53yJnYU3WhH/C8ycbRAkjPDc=" crossorigin="anonymous"></script>
<script>
    
    $(function(){
      
      var $btn  = $('.abas [data-filter]'),
          $lista = $('.lista-categoria [data-categoria]');
       
      $btn.on('click', function() {
        
        var $btnCategoria = $(this).attr('data-filter');
        
        $lista.removeClass('animacao');

        if ($btnCategoria == 'tudo') {

            $lista.show().addClass('animacao');

        } else {
           
           $lista.hide().removeClass('animacao').filter('[data-categoria = "' + $btnCategoria + '"]').show().addClass('animacao');
        }

        return false;
        
      });

    });


</script>

Combinando as Três seções acima Html e Css temos o seguinte Resultado!

Veja o Resultado baixo!

Baixar Código Veja Funcionando

Publicado por: Loop Nerd

553 Visualizações

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Artigos Relacionados