Script para Barra flutuante

Uma das coisas que sempre achei interessante foram as barras flutuantes que aparecem em alguns blogs ou sites. Elas, para além de encher o saco, podem aumentar, por exemplo, o número de assinantes. Para wordpress, já procurei várias vezes algum plugin que fizesse este trabalho. O máximo que encontrei foi o Strip Ads. O plugin é bom, mas queria algo mais personalizável, já que, a idéia era aumentar os assinantes dos feeds. Então, por acaso, encontrei um script que me concederia esta facilidade. (No Fórum do WordPress, há ainda algumas outras sugestões.)

O script está publicado no Dynamic Drive e, no exemplo padrão, mostra um a barra no topo da página que se move, conforme o usuário percorre sua página. Porém isto é facilmente customizável através do css, de forma que se pode obter bons resultados com este script e, o melhor, não funciona apenas em WordPress. Abaixo o script que funciona em Firefox 1,  Internet Explorer 5 e Opera 7. Não há informações sobre outros navegadores e ainda não pude testá-lo eficientemente.

Script para barras flutuantes

Inserido no HEAD

<script type="text/javascript">

/***********************************************
* Floating Top Bar script- © Dynamic Drive (www.dynamicdrive.com)
* Sliding routine by Roy Whittle (http://www.javascript-fx.com/)
* This notice must stay intact for legal use.
* Visit http://www.dynamicdrive.com/ for full source code
***********************************************/

var persistclose=0 //set to 0 or 1. 1 means once the bar is manually closed, it will remain closed for browser session
var startX = 30 //set x offset of bar in pixels
var startY = 5 //set y offset of bar in pixels
var verticalpos="fromtop" //enter "fromtop" or "frombottom"

function iecompattest(){
return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
}

function get_cookie(Name) {
var search = Name + "="
var returnvalue = "";
if (document.cookie.length > 0) {
offset = document.cookie.indexOf(search)
if (offset != -1) {
offset += search.length
end = document.cookie.indexOf(";", offset);
if (end == -1) end = document.cookie.length;
returnvalue=unescape(document.cookie.substring(offset, end))
}
}
return returnvalue;
}

function closebar(){
if (persistclose)
document.cookie="remainclosed=1"
document.getElementById("topbar").style.visibility="hidden"
}

function staticbar(){
    barheight=document.getElementById("topbar").offsetHeight
    var ns = (navigator.appName.indexOf("Netscape") != -1) || window.opera;
    var d = document;
    function ml(id){
        var el=d.getElementById(id);
        if (!persistclose || persistclose && get_cookie("remainclosed")=="")
        el.style.visibility="visible"
        if(d.layers)el.style=el;
        el.sP=function(x,y){this.style.left=x+"px";this.style.top=y+"px";};
        el.x = startX;
        if (verticalpos=="fromtop")
        el.y = startY;
        else{
        el.y = ns ? pageYOffset + innerHeight : iecompattest().scrollTop + iecompattest().clientHeight;
        el.y -= startY;
        }
        return el;
    }
    window.stayTopLeft=function(){
        if (verticalpos=="fromtop"){
        var pY = ns ? pageYOffset : iecompattest().scrollTop;
        ftlObj.y += (pY + startY - ftlObj.y)/8;
        }
        else{
        var pY = ns ? pageYOffset + innerHeight - barheight: iecompattest().scrollTop + iecompattest().clientHeight - barheight;
        ftlObj.y += (pY - startY - ftlObj.y)/8;
        }
        ftlObj.sP(ftlObj.x, ftlObj.y);
        setTimeout("stayTopLeft()", 10);
    }
    ftlObj = ml("topbar");
    stayTopLeft();
}

if (window.addEventListener)
window.addEventListener("load", staticbar, false)
else if (window.attachEvent)
window.attachEvent("onload", staticbar)
else if (document.getElementById)
window.onload=staticbar
</script>

Estilo para a barra flutuante

Pode ser colocado direto no HTML ou na folha de estilo

<style type="text/css">
#topbar{
position:absolute;
border: 1px solid black;
padding: 2px;
background-color: lightyellow;
width: 620px;
visibility: hidden;
z-index: 100;
}
</style>

Texto apra barra flutuante

Inserido em qualquer lugar do BODY, desde que não seja dentro de algum div ou table

<div id="topbar">
<a href="" onClick="closebar(); return false"><img src="close.gif" border="0" /></a>
Your content here.
</div>

4 Comentários em “Script para Barra flutuante”

  1. alexandre disse em 27/02/2011 às 16:36:

    olá, como posso fazer a barra flutuar em baixo ao ives de em cima?, evie a resposta por email

  2. Always NetServices disse em 20/06/2011 às 13:38:

    Como faço para colocar uma barra embaixo da página, como se tivesse preso ao navegador?

  3. milton quintanilha disse em 22/08/2011 às 13:38:

    Boa tarde. Gostaria de saber como faço para a barra flutuar em cima e porque ela não funciona direito quando diminuo o tamanho da tela do browser.

    Obrigado.

  4. milton quintanilha disse em 22/08/2011 às 13:38:

    ou melhor: para a barra flutuar em baixo… to meio doido.

Deixe seu comentário