Menu ou cabeçalho "fixo" na tela após "X" pixels - Blogger


Já repararam no menu do cabeçalho do blog?! Legal né?! Como foi possível deixar o menu fixo na página até a página rolar e atingir um ponto em que o menu passa a ficar fixo no topo da tela? Simples, eu explico e acredite, nada de JQuery! Vamos ao código:

Fonte do código: www.backslash.gr

___________________________________________________

<script>
 
    $(function() {

    // grab the initial top offset of the navigation
    var sticky_navigation_offset_top = $(&#39;#nav&#39;).offset().top;
   
    // our function that decides weather the navigation bar should have &quot;fixed&quot; css position or not.
    var sticky_navigation = function(){
        var scroll_top = $(window).scrollTop(); // our current vertical position from the top
       
        // if we&#39;ve scrolled more than the navigation, change its position to fixed to stick to top,
        // otherwise change it back to relative
        if (scroll_top &gt; sticky_navigation_offset_top) {
          $(&#39;#nav&#39;).css({ &#39;position&#39;: &#39;fixed&#39;, &#39;top&#39;:0, width:&#39;inherit&#39;, });
        } else {
          $(&#39;#nav&#39;).css({ &#39;position&#39;: &#39;relative&#39;, });
        }
    };
   
    // run our function on load
    sticky_navigation();
   
    // and run it again every time you scroll
    $(window).scroll(function() {
         sticky_navigation();
    });

});
    </script>
_________________________________________________


Agora vamos as explicações:
  1. O código deve ser aplicado ante de </head>
  2. Em vermelho: Esta é a div do seu cabeçalho ou menu. O termo pode variar de acordo com os templates, especialmente os "modificados". Cabe a você pesquisar qual a div do seu.
  3. Em azul: Estas são as definições CSS do menu quando ele se tornar "fixed" no topo da tela e as definições quando ele retornar ao ponto de origem.
No meu caso tive que adicionar a definição width:'inherit' para que a largura do menu obedecesse o padrão, pois o template que uso é responsivo, por tanto se o seu template não for responsivo você pode também definir em pixels a largura do menu. Na segunda definição CSS do menu (após "else{" ) não é necessário aplicar muitas definições caso você queira deixá-lo na forma original. Basta acrescentar apenas a 'position' relative. 

Por tanto, para que o código funcione corretamente é necessário ter conhecimentos básicos de css e saber qual a div do seu menu, de resto você pode até acrescentar outras definições css de dimensão e posicionamento.

Gostaram da dica? Simples não?! Qualquer dúvida, comenta aí!  E compartilhe também! ^^
Previous Post
Next Post

post written by:

14 comentários:

  1. Bom mesmo.. queria saber como deixar todo o cabeçalho fixo no blogger, como dessa página http://blog.obravip.com

    ResponderExcluir
    Respostas
    1. É mais fácil ainda e você nem precisa do código da postagem, basta determinar na div do cabeçalho: 'position: "fixed"; "top";'
      Qualquer dúvida no código html estamos por aqui (o)

      Excluir
  2. Ei cara como posso colocar entao um player de áudio de modo que este fique fixo e não pare de tocar durante a navegação nas outras paginas?
    MEU NOME É LEOMAR, apesar desse perfil

    ResponderExcluir
    Respostas
    1. Infelizmente isso não é possível na plataforma blogger [-(

      Excluir
  3. Olá, Muito obrigado mesmo, seu post é de ótima qualidade, porém quando eu apliquei no meu blog o menu ficou em baixo das outras partes do template, como eu altero isso? :-?

    ResponderExcluir
    Respostas
    1. Olá amigo, me parece que lhe falta o atributo "z-index". Experimente adicioná-lo. Neste link tem umas orientações básicas: http://www.guiadophp.yoonix.com.br/2010/05/14/posicionamento-com-z-index-em-css/

      Para mais dúvidas não canse de consultar o google, e também estou a disposição através dos comentários, abraços.

      Excluir
  4. valeu deu certo também a gente usa o mesmo tema
    só que no meu eu caprichei traduzi tuto até as datas
    visita ai ok
    precisa to ai
    http://josenamastelopes.blogspot.com.br/

    ResponderExcluir
    Respostas
    1. Que legal parceiro, parabéns pelo blog. Abraços.

      Excluir
    2. jose como vc colocou os numeros nao deu certo pra mim nao

      Excluir
  5. muito bom cara vlw (h) , veja como ficou o meu www.androiddownload.com.br

    ResponderExcluir
    Respostas
    1. Muito top cara! Seu site tá igualzinho ao baixaki/techmundo/etc. :>) Abraços.

      Excluir
  6. Procura pela div do cabeçalho e substitua o 'position' que estiver por "fixed"...

    ResponderExcluir