Categorias: CSS

Como criar um cabeçalho que encolhe em scrool down no Elementor

Escrito por Amanda de Lavra

23 de setembro de 2022
Fazendo um site de uma cliente com Elementor, o logotipo tinha detalhes pequenos e precisava aparecer grande no cabeçalho para ficar legível, mas queria que ele diminuísse no scrool down para não ocupar tanto espaço. Achei um tutorial em: https://www.wppagebuilders.com/create-shrinking-header-elementor/.

Iniciando, é preciso estabelecer a altura mínima do cabeçalho e definir a tag html como header (aba Layout). Depois, na aba Avançado, deve-se atribuir a classe sticky-header. Ainda na aba Avançado abrir as opções Motion Effects e definir a opção Sticky para Top. É necessário desabilitar as opções tablet e celular no campo Sticky O. Definir Effects Offset para a mesma altura do cabeçalho estabelecida na aba Layout. No módulo do logo, atribuir a classe logo .

Agora é preciso colocar o código CSS abaixo nas configurações da página:

header.sticky-header {
    --header-height: 133px;
    --opacity: 0.90;
    --shrink-me: 0.50;
    --shrink-logo: 0.45;
    --sticky-background-color: #1CBBAF;
    --transition: .3s ease-in-out;
    transition: background-color var(--transition),
                background-image var(--transition),
                backdrop-filter var(--transition),
                opacity var(--transition);
}

header.sticky-header.elementor-sticky--effects {
    background-color: var(--sticky-background-color) !important;
    background-image: none !important;
    opacity: var(--opacity) !important;
    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px);
    padding-bottom: 13px!important;
    padding-top: 13px!important;
}

header.sticky-header > .elementor-container {
    transition: min-height var(--transition);
}

header.sticky-header.elementor-sticky--effects > .elementor-container {
    min-height: calc(var(--header-height) * var(--shrink-me))!important;
    height: calc(var(--header-height) * var(--shrink-me));
}

header.sticky-header .elementor-nav-menu .elementor-item {
    transition: padding var(--transition);
}

header.sticky-header.elementor-sticky--effects .elementor-nav-menu .elementor-item {
    padding-bottom: 10px!important;
    padding-top: 10px!important;
}

header.sticky-header > .elementor-container .logo img {
    transition: max-width var(--transition);
}

header.sticky-header.elementor-sticky--effects .logo img {
    max-width: calc(100% * var(--shrink-logo));
}
Pode-se ver o efeito na imagem acima.

Posts relacionados

Customizações da página de login e painel administrativo do WordPress

Customizações da página de login e painel administrativo do WordPress

Para todo o site que eu faço, personalizo a página de login e também o wp-admin para ficar com a marca do cliente. Recentemente, aperfeiçoei o código para que o login ficasse no meio da página, tanto verticalmente quanto horizontalmente. Segue código usado aqui neste...

Botão Leia Mais no Elementor

Botão Leia Mais no Elementor

O site do cliente tinham alguns textos que eram muito extensos e, num layout de coluna, variavam muito de tamanho. Decidi adaptar o que já havia feito no Divi, ao incluir um botão Leia Mais (https://blog.amandadelavra.com.br/modulo-texto-com-botao-leia-mais/), mas...

Como manter a proporção de um elemento com CSS

Como manter a proporção de um elemento com CSS

Me pediram para colocar um elemento flutuante no site com o preço de cada produto. Como os preços variam de acordo com o produto, eu não podia ajustar com padding apenas para que ficasse redondinho na proporção 1:1. Para isso, usei a propriedade do CSS aspect-ratio....