Como criar um Cabeçalho fixo (Sticky Header) com CSS e jQuery

A sticky header ou cabeçalho fixo, que gruda, é a denominação empregada à barra de menu que fica fixa no topo da tela ao “scrollarmos” o mouse.

Neste tutorial vamos criar um cabeçalho que adere à parte superior da janela de exibição, mas para que ele não interfira com o conteúdo, vamos minimizá-la quando o usuário rola para baixo a página.Vamos começar:

Antes de mais nada, veja a funcionalidade de um sticky header:

O HTML

Nesse exemplo, HTML é muito simples, tudo o que precisamos é um h1 dentro de um cabeçalho (header). Abaixo disso temos uma imagem para forçar a página para rolar para que possamos testar o efeito.

<header><h1>Sticky Header</h1></header>
<img src="large-image.jpg" width="782" height="2000" alt="Imagem" />

jQuery

Transições em CSS são a melhor maneira de lidar com a parte de animação do nosso Sticky header. Nós somente estamos usando jQuery para detectar a posição do scroll de rolagem da janela. Quando a posição de rolagem da janela é maior do que 1 –  significa que o usuário está rolando para baixo, então queremos adicionar a classe “sticky” para o header; caso contrário, a classe não é adicionada .

$(window).scroll(function() {
if ($(this).scrollTop() > 1){  
    $('header').addClass("sticky");
  }
  else{
    $('header').removeClass("sticky");
  }
});

O CSS

O CSS tem dus utilizadades importantes, uma é denominar dois estados diferentes do cabeçalho, o estado padrão e o estado “pegajoso” ou sticky, a outra é para fazer a transição entre os dois estados . Para começar, vamos adicionar alguns estilos simples que melhoram a aparência do cabeçalho:

header{
  position: fixed;
  width: 100%;
  text-align: center;
  font-size: 72px;
  line-height: 108px;
  height: 108px;
  background: #335C7D;
  color: #fff;
  font-family: 'PT Sans', sans-serif;
}

Agora vem a parte divertida.

Quando o usuário rola para baixo, a classe ‘sticky‘ será aplicada, e agora podemos denominar o cabeçalho de forma diferente para refletir essa nova prioridade na página. Nós também definimos a posição para o estado fixo, de modo que não estamos alterando o posicionamento da rolagem. Após essa etapa devemos mudar o tamanho para que ele ocupe menos espaço na tela e, também, queremos mudar a cor e alinhar o texto à esquerda para que visualmente que não interfira com o conteúdo:

header.sticky {
  font-size: 24px;
  line-height: 48px;
  height: 48px;
  background: #efc47D;
  text-align: left;
  padding-left: 20px;
}

Por fim, para animar a mudança, tudo o que precisamos fazer é definir uma transição no cabeçalho, assim:

transition: all 0.4s ease;

CONCLUSÃO

A criação deste cabeçalho animado com propriedades CSS3 e alternando a classe com jQuery é extremamente simples e acrescenta muita qualidade ao UX do design do site. Além do mais, o código cai em desuso, então não há realmente nenhuma desvantagem para a implementação.

Hoje com a tendências de sites responsives, a utilização do sticky header ou cabeçalho fixo é uma técnica muito utilizada na programação da pagina.
Algumas ferramentas de criação de sites, contam com essa tecnologia e você não precisa por a mão no código para implementá-la.

Login



Esqueceu sua senha?
X

Crie seu site!



.wime.com.br

X