Tutorial Filtro de Imagens Jquery, HTML-5 e CSS em galeria de de Portfólio: Página Responsivo: Tutorial

Neste tutorial vou mostrar como fazer um Filtro de imagens para usar em portfólio e filtar as categorias sem a utilização plugins pagos. Você poderá usar em seus projetos e deixa-los mais elegantes e profissionais. No final deste post vou disponibilizar os arquivos para download. Vamos lá!

Demonstração

Filtro Meu Portfólio

Mostrar todas

Natureza

Automóveis

Pessoas

Organizado o diretório dos arquivos

A primeira coisa que devemos fazer é organizar o diretório onde vão ficar os arquivos do código fonte da nossa página html que exibirá o portfólio.

1 – Diretório principal do Projeto

Crie uma pasta para ser o diretório principal do nosso projeto. Você pode dá qualquer nome para ela. Nesse exemplo vamos nomear de “filter-portfolio”, conforme a imagem abaixo:

2 – Dentro da pasta principal vamos criar o arquivo “index.html” e mais três pastas; “img, css e js“:

  • index.html – arquivo da nossa página principal (também conhecido como “home”)
  • img – para armazenar os arquivos de imagens do projeto: “.jpg, .png, entre outras…”
  • css – para armazenar os arquivos de folha de estilos: “.css”
  • js – para armazenar os arquivos do tipo javascript: “.js”

Eles vão ficar conforme a imagem abaixo:

Obs: o uso do underline_” no início faz com que o arquivo/pasta apareça no topo da lista quando classificado por Nome

3 – Inserindo código HTML no arquivo index.html

Abra o seu arquivo, “index.html”, copie e cole o código abaixo nele:

<!DOCTYPE html>
<html lang="pt-br" xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Filtro Meu Portfólio</title>
        <link href="_css/style.css" rel="stylesheet">

    </head>

    <body>

          <section>
              <aside>
                 <h1>Meu Portfólio</h1>
              </aside>

              <header>
                  <p data-filter="all" class="button active">Mostrar todas</p>
                  <p data-filter="nat" class="button">Natureza</p>
                  <p data-filter="car" class="button">Automóveis</p>
                  <p data-filter="pes" class="button">Pessoas</p>
              </header>

               <article>   

                    <figure class="filter car">
                        <div>
                            <img src="_img/cars1.jpg">
                        </div>
                    </figure>

                    <figure class="filter nat">
                        <div>
                            <img src="_img/lights.jpg">
                        </div>
                    </figure>

                    <figure class="filter car">
                        <div>
                            <img src="_img/cars2.jpg">
                        </div>
                    </figure>

                    <figure class="filter nat">
                        <div>
                            <img src="_img/mountains.jpg">
                        </div>
                    </figure>

                    <figure class="filter pes">
                        <div>
                            <img src="_img/people3.jpg">
                        </div>
                    </figure>

                    <figure class="filter car">
                        <div>
                            <img src="_img/cars3.jpg">
                        </div>
                    </figure>

                    <figure class="filter pes">
                        <div>
                            <img src="_img/people2.jpg">
                        </div>
                    </figure>

                    <figure class="filter nat">
                        <div>
                            <img src="_img/nature.jpg">
                        </div>
                    </figure>

                    <figure class="filter pes">
                        <div>
                            <img src="_img/people1.jpg">
                        </div>
                    </figure>

               </article>
               
         </section>

        <script src="_js/jquery-3.6.0.min.js"></script>
        <script src="_js/script.js"></script>
    </body>
</html>

4 – Criando a folha de estilo na pasta _css

Na pasta _css vamos criar o arquivo com o nome “style.css“. Para criar e editar esse arquivo você pode usar qualquer ferramenta de edição de HTML como: Notepad++, Sublime Text, ou IDEs como o: Visual Studio, VS-Code entre muitos outros.

Conteúdo da pasta _css

Abra o seu arquivo, “style.css”, copie e cole o seguinte código css3:

*{
	padding: 0;
	margin: 0;
	list-style: none;
	font-family: 'Open Sans';
	text-decoration: none;
	box-sizing: border-box;
}

body{
    background-color: #DDD;
}

section{
	width: 100%;
        height: auto;
        max-width: 100%;
        background-color: #DDD;
	margin: 0;
	}

	section aside{
		width: 100%;
		height: auto;
		max-width: 100%;
		padding: 20px 20px 0px 20px;
		background-color: #EEE;
	}
section aside h1{
	padding: 80px 0px 5px 0px;
	color: #444;
	width: 1040px;
	height: auto;
	margin: 6px auto;
	font-size: 25px;
	max-width: 100%;
	position: relative;
	text-align: center;
	}

section header{
	width: 100%;
	height: auto;
	padding: 25px 0px;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;

}

section header p.active{
	background-color: #e67e22;
	color: white;
}

section header p{
	width: auto;
	height: auto;
	text-align: center;
	font-size: 11pt;
	margin-right: 5px;
	border: 1px solid #ccc;
	background-color: #3ba6a4;
	padding: 10px;
	color: #FFF;
	cursor: pointer;
}

	section article{
		max-width: 100%;
		width: 900px;
		height: auto;
		margin: 0 auto;
		display: grid;
		grid-gap: 10px;
		justify-items: center;
		grid-template-columns: repeat(auto-fit, minmax(250px, 2fr));
		padding: 0;
		}

		section article figure{
			width: auto;
			height: auto;
			max-width: 100%;
			overflow: hidden;
			margin: 2px;
			position: relative;
			transition: all 0.4s linear;
			}

		}

		section article figure div{
			width: auto;
			height: auto;
			max-width: 100%;
		}

			section article figure div img{
				width: 400px;
				height: auto;
				max-width: 100%;
				position: relative;
				transition: 0.6s;
				margin: 0px;
				}

				

@media all and (max-width:890px)
{
     section article{
	  max-width: 100%;
	  margin: 0 auto;
	  display: grid;
	  grid-gap: 5px;
	  justify-content: center;
	  justify-items: center;
	  grid-template-columns: repeat(auto-fit, minmax(150px, 2fr));
	  padding: 40px 10px 10px 10px;
	  }

}

5 – Criando os arquivos na pasta _js

Na pasta _js vamos precisar dos seguintes arquivos .js:

  1. script.js – nele vamos colocar o código JavaScript para criar os efeitos do filtro nos elementos.
  2. jquery-3.6.0.min.js – uma biblioteca livre que contém funções da linguagem de programação JavaScript que interage com páginas em HTML. Sem essa biblioteca nosso script.js não irá funciona.

Abra o arquivo, “script.js”, copie e cole o seguinte código JavaScript:

$(document).ready(function(){
		$(".button").click(function(){
			var name = $(this).attr("data-filter");
			$(".button").removeClass('active');
			$(this).addClass('active');

			if(name == "all")
			{
				$(".filter").show("2000");
			}
			else
			{
				$(".filter").not("."+name).hide("2000");
				$(".filter").filter("."+name).show("2000");
			}
		})
	})

Se você já criou o arquivo “jquery-3.6.0.min.js”, clique aqui, copie todo o código que aparece na página e cole no seu arquivo jquery. (dica: use as teclas: “Ctrl + A” para selecionar todo o conteúdo da página.)

Conteúdo da pasta _js

Depois de fazer todo este processo o nosso portfólio vai ficar conforme a demonstração abaixo:


Aqui finalizamos o nosso tutorial. Espero que nesse vasto mundo Dev.

Vou disponibilizar os arquivos que usamos neste tutorial gratuitamente para download.

Você também pode nos ajudar fazendo uma doação ao nosso projeto.

Deixe um comentário

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

Rolar para cima