Um recurso tem tem sido muito usado por diversos sites e blog é o elemento de página (gadget/widget) flutuante na barra lateral (sidebar), especialmente para dar destaque a anúncios e links importantes. Este recurso é bem simples de aplicar tanto em blogs no Blogger (BlogSpot), quanto no WordPress.ORG, funcionando em qualquer navegador. O elemento só se move quando a página é rolada, acompanhando o visitante.
Se você quer ver esse recurso funcionando, basta olhar aqui para nossa barra lateral do Blog e rolar a página. Note que o último widget ficará fixo e sempre visível, até o final da rolagem da tela. Vamos mostrar aqui como aplicar esse recurso em qualquer blog do Blogger ou WordPress.ORG de forma bem simples.
ATENÇÃO: Não é permitido usar este recurso com os anúncios do AdSense! As regras proíbem isso.
Como usar gadget/widget fixo na página do Blog
Primeiro vamos mostrar como funciona no Blogger, pois precisa de algumas linhas de código. Depois o do WordPress.ORG que precisa de um plugin que fará o recurso funcionar para qualquer widget que desejar aplicar.
Para o Blogger
Se você usa o Blogger (BlogSpot) para criar o seu blog, tudo o que precisa fazer é procurar por uma linha no código fonte. Abra o painel do Blogger, clique no menu “Modelo” e depois no botão “Editar HTML”. Em seguida clique no botão “Formatar modelo” para pesquisar pelas linhas. Procure por:
</head>
Se ainda não sabe como encontrar códigos no novo editor do Blogger, então leia nosso tutorial: Como encontrar códigos no novo Editar HTML do Blogger?
Imediatamente ANTES dessa linha cole o seguinte trecho, sem alterar nada nele:
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
É possível que seu template já tenha esse código inserido nele. Se for o caso, não tem problema manter um ou dois iguais. Não afeta o funcionamento de nada.
Então salve o modelo para aplicar a mudança feita.
O próximo passo já é o último. Este recurso só funciona para os gadgets inseridos com código no “HTML/JavaScript”. Tudo o que precisa fazer é ir até o menu “Layout” no painel do Blogger, escolher qual o gadget que quer fazer flutuar, como algum onde inseriu o código de fãs do Facebook.
Abra o gadget “HTML/JavaScript”, salve o conteúdo dele à parte (copiando as linhas para serem coladas onde for indicado) e cole o seguinte trecho, só modificando o que está indicado:
<script type="text/javascript">
//<![CDATA[
(function($) {
var defaults = {
topSpacing: 0,
bottomSpacing: 0,
className: 'is-sticky',
wrapperClassName: 'sticky-wrapper'
},
$window = $(window),
$document = $(document),
sticked = [],
windowHeight = $window.height(),
scroller = function() {
var scrollTop = $window.scrollTop(),
documentHeight = $document.height(),
dwh = documentHeight - windowHeight,
extra = (scrollTop > dwh) ? dwh - scrollTop : 0;
for (var i = 0; i < sticked.length; i++) {
var s = sticked[i],
elementTop = s.stickyWrapper.offset().top,
etse = elementTop - s.topSpacing - extra;
if (scrollTop <= etse) {
if (s.currentTop !== null) {
s.stickyElement
.css('position', '')
.css('top', '')
.removeClass(s.className);
s.stickyElement.parent().removeClass(s.className);
s.currentTop = null;
}
}
else {
var newTop = documentHeight - s.stickyElement.outerHeight()
- s.topSpacing - s.bottomSpacing - scrollTop - extra;
if (newTop < 0) {
newTop = newTop + s.topSpacing;
} else {
newTop = s.topSpacing;
}
if (s.currentTop != newTop) {
s.stickyElement
.css('position', 'fixed')
.css('top', newTop)
.addClass(s.className);
s.stickyElement.parent().addClass(s.className);
s.currentTop = newTop;
}
}
}
},
resizer = function() {
windowHeight = $window.height();
},
methods = {
init: function(options) {
var o = $.extend(defaults, options);
return this.each(function() {
var stickyElement = $(this);
stickyId = stickyElement.attr('id');
wrapper = $('<div></div>')
.attr('id', stickyId + '-sticky-wrapper')
.addClass(o.wrapperClassName);
stickyElement.wrapAll(wrapper);
var stickyWrapper = stickyElement.parent();
stickyWrapper.css('height', stickyElement.outerHeight());
sticked.push({
topSpacing: o.topSpacing,
bottomSpacing: o.bottomSpacing,
stickyElement: stickyElement,
currentTop: null,
stickyWrapper: stickyWrapper,
className: o.className
});
});
},
update: scroller
};
if (window.addEventListener) {
window.addEventListener('scroll', scroller, false);
window.addEventListener('resize', resizer, false);
} else if (window.attachEvent) {
window.attachEvent('onscroll', scroller);
window.attachEvent('onresize', resizer);
}
$.fn.sticky = function(method) {
if (methods[method]) {
return methods[method].apply(this, Array.prototype.slice.call(arguments, 1));
} else if (typeof method === 'object' || !method ) {
return methods.init.apply( this, arguments );
} else {
$.error('Method ' + method + ' does not exist on jQuery.sticky');
}
};
$(function() {
setTimeout(scroller, 0);
});
})(jQuery);
//]]>
</script>
<script>
$(document).ready(function(){
$("#rbtSocialFloat").sticky({topSpacing:0});
$("#topside_box").sticky({topSpacing:6});
});
</script>
<div class="sticky-wrapper" id="topside_box-sticky-wrapper" style="height: 222px;text-align:center;"><div id="topside_box-sticky-wrapper" class="sticky-wrapper" style="height: 112px;"><div class="" id="topside_box" style="">
Cole AQUI o código do seu Gadget
</div></div></div>
Onde está marcado de vermelho “Cole AQUI o código do seu Gadget“, adicione o código que você reservou (que pode ser qualquer coisa). Salve o gadget modificado, clique no botão “Salvar organização” e veja o resultado em seu Blog.
Observe que é importante que este elemento de página seja o último da barra lateral, pois senão ele ficará sobreposto aos outros já existentes. Também só funciona em um único elemento.
Para o WordPress.ORG
Já quem usa o WordPress.ORG (com domínio e hospedagem próprios) fica fácil aplicar esse recurso de widgets flutuantes com um plugin. Aqui no [ Ferramentas Blog ] usamos o Q2W3 Fixed Widget (Sticky Widget). Bem leve e não altera nada na estrutura do seu layout.
Basta procurar por ele no menu “Plugins” ~> “Adicionar novo” ou fazer o download gratuito aqui – Baixar Q2W3 Fixed Widget.
Depois de instalado ele ira inserir uma opção “Fixed widget” em todos os widgets que você tem na sua barra lateral ou for adicionar, como na imagem de exemplo abaixo:
Todos os elementos de página que tiveram essa opção marcada vão flutuar com a rolagem da página.
Legal esta funcionalidade, irei implantar em meu blog.
Quanto à questão do código, Marcos, caso ele seja repetido não irá afetar na velocidade de carregamento da página? Porque seria mais um script a ser carregado.
Elton Viana
Elton,
Não afeta porque está nos servidores do Google. O melhor é ter apenas 1, mas se ficar difícil verificar para ter certeza, pode ter mais de 1 que não atrapalha.
Ah obrigado!
Irei implantar em meu blog.
Ótima publicação… Tanto é que ja implementei no meu blog e ficou muito show… Valeu novamente marcos por nos ajudar a melhorar cada vez mais os nossos sites e blogs…
Estou realizando uma série de testes e exercícios na plataforma Blogger, e a dica veio bem a calhar. Obrigado, Marcos.
Olá Marcos!
No próprio título do post está escrito: “…nar Gadget e Widget flutuan…”
Qual é a diferença dos dois? Gadget não é a mesma coisa que Widget? Ou um serve para uma coisa e outro serve para outra? Sempre pesquisei sobre isso e nunca achei a resposta… Se puder responde seria legal!
Abraços!
Caio,
É a mesma coisa, só que no Blogger é chamado de Gadget e no WordPress é chamado de Widget. E o Blogger tb faz algumas confusões usando widget em certos lugares.
Marcos, vi que esta usando um banner do adsense com o plugin, com ele é permitido pelo Google?
Adriano,
Sim, O Adsense permite isso, desde que não confunda o público.
Marcos, enquanto a esta regra? http://support.google.com/adsense/bin/answer.py?hl=pt-BR&answer=48182&ctx=cb&src=cb&cbid=54mab9y5bg90
Juliano,
Realmente não é permitido usar o AdSense flutuante.
Essa funcionalidade de Widget flutuante e que acompanha a página nos dá grandes possibilidades, principalmente no Blogger para deixar os blogs/sites mais atraentes.
Ótimo recurso Marcos!
Parabéns Marco ótimo recurso, pena que no template que estou usando nesse momento isso causa alguns conflitos, mais parabéns gostei muito desse post.
Bom dia, Marcos! Antes de mais nada quero agradecer por tão excelentes artigos e dicas. Estou adentrando no mundo dos blogs somente agora que me aposentei, apesar de ser desenvolvedor de websites (quando se trabalha para uma empresa fica-se limitado apenas ao que ela quer, infelizmente).
Testei várias vezes o código e não funcionou e ao reler o seu artigo tive uma dúvida com relação a isso:
“recurso só funciona para os gadgets inseridos com código no “HTML/JavaScript””
O gadget HTML/JavaScript é por padrão vazio, não possui código, então usei um código qualquer nele e inseri no espaço por você indicado. O código que eu inseri (botões das redes sociais) funcionou, porém o da barra flutuante lateral, não funcionou. O que pode ter ocorrido?
Obrigado e parabéns pelo blog, é muito bom mesmo!
Oi Marcos!
Era justamente o que eu estava procurando e caiu como uma luva.
Obrigado pela dica!
Abraço!
Valeu, usei no meu site (WordPress sem plugins) editando diretamente o tema (não uso os widgets nos temas próprios). Funcionou que é uma maravilha!!!
Pingback: Como criar um menu ou anúncio fixo/flutuante na página ao rolar a tela? - Explorando
Esse gadget flutuante é uma estratégia muito boa!
Eu utilizei no meu blog, notei de imediato um aumento do número de cliques no anúncio que tinha colocado, mas penso que não vale a pena pois fica um pouco invasivo.
Abraço!
Olá, estava procurando o codigo para o gadget que está na lateral das postagens (twitter, Google+, facebook) para blogger.
Olá, o plugin não funcionou em meu blog WordPress, tem alguma solução?
Putz, era justamente o que eu precisava, valeu Marcos!
Olá Marcos, Gostaria de saber se tinha como determinar o local onde o gadget pare…porque eu meu blog abaixo da barra lateral tem umas coisa, esse gadget flutuante vai até em baixo num é, então o que eu queria era que ficasse apenas no espaço vazio que sobra da barra lateral, você tem alguma dica ou solução…Obrigado e parabéns pelo site e a postagem, muito boa…!!! Obrigado, abraço..!!!
Infelizmente não funcionou no meu blog.
Olá, gostaria de saber se tem como editar o código para o gadget parar na barra lateral, porque o meu gadget passa da barra lateral e vai até o footer, vlww, ótima postagem…ate mais…Agradeço se poder mim ajudar…
Infelizmente não tem como determinar onde o gadget vai parar de flutuar. Em alguns casos ele fica sobrepondo o footer mesmo.
Obrigado por responder meu cometário e tirar minha duvida, Obrigado…!!!!
Oi Marcos, nesse design (http://www.nintendoblast.com.br/2014/03/final-twitch-plays-pokemon.html) feito no blogger, o editor conseguiu por uma pausa na rolagem do widget antes do footer, como fazer isso?
Obrigado
Olá,
minha versão do wordpress é 2.9.2 e esse plugin não funciona. Existe um outro plugin ou código que faça a mesma coisa e seja compatível com a minha versão de wordpress?
Edson
Edson,
Então atualize URGENTE seu WordPress para versão mais nova.
Olá Marcos,
Mais do que eu, você sabe que não é tão simples assim.
Tanto o tema quanto os plugins podem deixar de funciona, etc. É um projeto maior.
Por enquanto, só queria um plugin que funcionasse com a minha versão do WordPress.
Estou tentando versões antigas desse plugin, mas até agora não funcionou.
Vou tentar fazer manualmente.
Obrigado pela resposta.
Edson.
Fiz manualmente, conforme está na sua postagem.
O widget fica fixo, mas expande para a direita.
Faltou alguma coisa?
Edson.
Edson,
Nada mais simples que atualizar o WordPress.ORG.
É questão de segurança para seu blog e garantia de que tudo sempre vai funcionar. Deixar seu WP desatualizado coloca seu blog em risco.
Marcos,
Vou tentar descobrir as respostas para minhas dúvidas.
Edson.
Edson,
Posso garantir para você que todos os lugares que encontrar, todas as pessoas que encontrar, vão te dizer a mesma coisa que eu: Atualizar o WordPress para a versão mais recente.
Mas fique a vontade. O risco é por sua conta. Se encontrar alguma resposta diferente dessa, por favor, volte aqui pra me contar.
Marcos,
Sei da questão do WordPress, mas em nenhum momento essa foi a minha dúvida.
Primeiro lhe perguntei se você conhecia um outro plugin ou código que fazia a mesma coisa desse plugin e que fosse compatível com a minha versão de wordpress?
Você respondeu para eu trocar a versão do WordPress. Acabou não respondendo.
Depois lhe disse que eu havia implementado o código manual, conforme está na sua postagem, mas que, embora o widget ficasse fixo, expandia para a direita.
Perguntei se poderia ter faltado alguma coisa na minha implantação.
Você respondeu que era fácil trocar a versão do wordpress. Acabou não respondendo novamente.
Para seu conhecimento, muitas vezes não é tão simples assim trocar a versão do wordpress.
Já testei a troca de versão e meu tema e vários plugins instalados vão deixar de funcionar. Tenho que trocar o tema e atualizar versões de plugins, ou até mesmo trocá-los por outros similares.
A questão agora não é a troca do wordpress.
Edson.
Muito bom esse tutorial. Como que eu faço para aplicá-lo direto no HTML do blogger. Eu tenho, no cabeçalho do blog uma imagem que ocupa todo o width da página e logo em seguida, alguns botões css, queria fazer esse botão ficar parado no topo assim que a página fosse descida. É possível isso aplicando esses códigos alterando alguma configuração?
Obrigado!
Joanir,
Nunca testei dessa forma. Pode ser possível.
Olá Marcos post muito interessante e bem explicativo, mas minha dúvida é a seguinte eu coloquei no meu blog um bloco de anúncio flutuante, e fixo na direita, inclusive escrevi um artigo passo a passo do Código para colocar anúncios Adsense, publicidade fixo no Blogger em: [link suprimido] e ainda estou em dúvida se é correto o uso desse anúncio? Poderia me dar uma ajuda?
Não é permitido o uso de blocos de anúncios do AdSense flutuantes. Não use no blog.
Valeu kra nao sabia disso, muito obrigado pela dica!!!
Valeu pela dica, funcionou certinho, virei leitor assíduo de seu blog.
Marcos que dica legal, já apliquei no meu blog
Valeu.. Muito fácil de aplicar, funcionou como desejava.
Olá, Marcos! Boa noite!
Há um plugin que faz igual ao menu do seu blog que acompanhar o rolar da página?
Trata-se desse plugin para WordPress.ORG:
– https://ferramentasblog.com/2011/08/plugin-wordpress-box-flutuante-ferramentas-blog.html
Espero que ajude.
Olá primeiramente parabéns pelo o post deu certinho aqui, agora gostaria de saber se tem algum comando que possa fazer com que ele pare de flutuar antes do footer do blog porq no meu blog tem umas coisa abaixo do footer ai o gadget fica em cima deles entende, ai gostaria de saber se tem como para ele parar antes do footer percebi q no seu site tem esse comando, muito obrigado e espero que possa mim ajudar pois gostei muito desse código vlw..Até logo!!
Anderson,
Vá às configurações do plugin que tem lá opções para margens e limites.
Olá, Obrigado por responder amigo, mas no meu caso eu uso o blogger, será que tem algum comando? vlww mesmo !!!
Olá vi que vc disse que não é permitido colocar anunciodo do google usando o flutuante na sidebar, porém, sites grade utiliza essa tecnica, como é o exemplo do ig.com, se vc prestar atenção quando rola o conteúdo para cima para ver mais informações embaixo, o anúncio acompanha.
Maycon,
Primeiro tem que saber se o banner dele que flutua realmente é um AdSense.
A regra é clara e não pode usar banner flutuante com AdSense.
Mas grandes portais podem ter outros acordos com o Adsense. Sabemos que há exceções para grandes empresas parceiras da Google.
Valeu! Obrigado pela dica.
Ola, todo lugar que eu procuro somente é ensinado como adicionar em blog/wp eu gostaria de acidionar no meu site, não é blogger, nem wordpress, não é cms algum.. é um site em php.
Teria como informar onde acho tal informação, ou ensinar como faz?
Grato
Funcionou direitinho!
Bacana funcionou perfeito show de bola !!!
Fiz no blogger, deu certo, valeu !!! Mas ele passa por baixo das coisas escritas no meu blog, como faço para ele passa por cima para se visto ?
Será que funciona jogando o código do Menu horizontal do meu Blogger?
Obrigado, seu conteúdo me ajudou muito. Sucesso