Para nós desenvolvedores existem scripts, códigos, métodos, estruturas que carregamos conosco ano após ano. Utilizamos essas “soluções empacotadas” em determinados momentos, muitas vezes salvando nossas horas de descanso.
A muito tempo atrás, em um sistema web que o foco era visualização de documentos, o cliente solicitou que o menu fosse retrátil. Ou seja, o menu superior da aplicação tinha que desaparecer se não estivesse sendo utilizado e aparecer quando o cursor do mouse se aproximasse dele. Para suprir isso criei uma função Javascript (utilizando CSS), e ficou bem bacana, simples e bastante útil. Esse script eu carrego comigo desde lá.
Precisei disso novamente alguns dias atrás, mas dessa vez fiz diferente. Tornei o script genérico de modo que posso utilizar mais facilmente em qualquer aplicação web que tenha jQuery, e ainda coloquei em um repositório no Github (repositório GIT).
Sei que ainda é bastante primitivo e não está nos padrões de plugin jQuery. Mas essa é uma das intenções de colocar em um repositório publico. Quem quiser usar e acoplar funcionalidades, otimizações e mesmo dar opiniões será muito bem vindo. Pra quem não quer nem tocar no repositório, segue o link pra download (versão mais recente). Veja um exemplo do seu funcionamento aqui.
Pra explicar “o que”, “como”, “onde” vou transcrever o README do repositório no Github abaixo.
upper-box
API javascript que transforma qualquer elemento de seu HTML (uma div, por exemplo) em uma caixa móvel posicionada na parte de cima da tela.
Para utilizá-lo é necessário estar com o jQuery adicionado ao documento.
O que acontece?
O elemento upper-box vai virar uma caixa “invisível” na parte de cima da tela.
Quando o usuário se aproxima com o mouse da parte superior da tela (body), o elemento ira rolar, abrindo e exibindo seu conteúdo.
Como usar?
Primeiro inclua os arquivos jQuery e upper-box no seu html, desta forma:
<script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="upper-box.js"></script>
Seu uso é bem simples, basta adicionar “upper-box” ao class do elemento que vai virar upper-box.
Exemplo:
<div id='div1' class='divClass'> <h2>Olá,</h2> <p>Esta div não é um <b>upper-box</b>!</p> </div>
<div id='div2' class='divClass upper-box'> <p>Esta div será um <b>upper-box</b>!</p> <p>Simples, não?!</p> </div>
Quais navegadores?
O upper-box foi testado em Firefox, Safari e Internet Explorer 7.


Mto bom
Só não consegui fazê-lo ficar como menu no footer da página mas que acompanharia o scroll.. Ele fica fixo :/
Btw, No IE6 também funciona OK o upperbox
Olá Raphael,
Quem sabe usando a propriedade css “position: fixed;”. Mas aí você também vai ter que ajustar o width, height e talvez o z-index.
Bom saber que funciona na tranqueira do IE6, nem lembro se eu cheguei a testar nessa coisa.
Obrigado pela colaboração, aguardamos as melhorias!
Yeah, ainda to testando
No IE6 estranhamente quando damos scroll, ele continua no mesmo lugar porém se damos hover nele (para abrir o box) ele ’se joga’ no footer dinovo ahahah
Bom, vamo lá que ainda consigo xD
Wagner,
Tava testando vários códigos e vi que o Painel de Controle da Locaweb tem um menu ‘fixo’ que é controlado por um Js (ou seja, ele tem smooth scroll e fica numa determinada posição sempre, mesmo dando scroll). Eu achei a função apos ler +ou-9700 linhas de código cretino entupido de table o nomes de funções que não tem nada haver com oq faz :/
Porém não consigo fazê-la funcionar. Se conseguíssemos fazê-la funcionar, seu upper-box poderia ser anywhere-box com scroll, até colocado no foot igual minha idéia principal, de montar um Dock de Mac (mas ñ restrito a isso)
Me mande um e-mail para conversarmos melhor e eu te mandar o codigo? Eu não tenho muita prática em coding de JS mas sei o basiquinho para ler e entender, mas nada para criar do zero
O e-mail acho que você consegue ver neh, já que não aparece para normal users.
Att,
Raphael
Ps.: Desculpe enxer a paciência, empolguei com seu upper ;P
upper+esse codigo q peguei+menu fisheye = site perfeito xD
Muito legal o menu retrátil, só que eu queria que a página também descesse junto. Tem como me dar uma força?