Estou com um menu flutuante que só é posicionável com a position "Absolute", porém preciso que ele seja posicionável com a position "Relative" para que a posição dele se auto ajuste independente da resolução. O problema que ao alterar a posição para relative ele para de flutuar. Alguma sugestão?
Pergunta
Rafael Wojcik
Olá Pessoal,
Estou com um menu flutuante que só é posicionável com a position "Absolute", porém preciso que ele seja posicionável com a position "Relative" para que a posição dele se auto ajuste independente da resolução. O problema que ao alterar a posição para relative ele para de flutuar. Alguma sugestão?
Obrigado!
Link para a página onde ele está como absolute: http://www.m-arnaud....literatura1.asp
Código do menu:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <title>Menu SubNivel</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <style type="text/css"> /********************************************************************** * A estilização está na mesma página para fins didático * Tem algumas modificações na parte estética no menu * mais o funcionamento não foi modificado * ********************************************************************* */ /** * Zerar o Margin e Padding e todos os elementos na página */ *{ margin:0; padding:0; } /*remove a marcação da lista*/ ul{list-style-type:none} /*remove o underline no link por padrão*/ a{text-decoration:none} /*ao passar o mouse volta o underline*/ a:hover{text-decoration:underline} /********************************************************************** *CONFIGURAÇÕES MENU - Estilização * ********************************************************************* * / /*define uma largura*/ #menu{width:150px; border:1px solid #ccc;} /*Define um position relative porque iremos utilizar * absolute nas sub-listas **/ #menu li{ position:relative; _float:left;/*Hack para o IE6*/ } #menu li a{ display:block; /*define o elemento em bloco para ocupar 100% de largura do elemento pai*/ height:25px; /*Define uma altura*/ line-height:25px;/*Cenraliza na vertical */ color:#777; /*define a cor da fonte*/ border-bottom:1px solid #ccc; /*define uma bordar no bottom*/ background:#f5f5f5;/*define a cor do fundo*/ } #menu li a:hover{ background:#e5e5e5;/*define a cor do fundo*/ color:#333;/*define a cor da fonte*/ } /******************************************************************* *VAMOS COMEÇAR A MAGIA - Aqui agrupei alguns item ********************************************************************* */ #menu li ul, #menu li:hover ul ul{ display:none;/*define para não aparecer a ul*/ position:absolute; /*define uma posição absolute*/ width:150px;/*define uma largura*/ top:0; /*colocamos top com 0*/ left:150px; /*afastamos 150px a esquerda*/ border:1px solid #ccc;/*define uma borda*/ } /*É agora que vamos mostrar o menu, declarano*/ #menu li:hover ul, #menu ul li:hover ul{ display:block; } </style> <!-- Inicio CSS Flutuação --> <style type="text/css"> <!-- #fl_menu{position:absolute; top:27%; left:12%; z-index:9999;} --> </style> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script> <script type="text/javascript" src="js/jquery.easing.1.3.js"></script> <!-- Fim CSS Flutuação --> </head> <body> <div id="fl_menu"> <ul id="menu"> <li><a href="#">Empresa</a> <ul> <li><a href="empresa.asp">M. Arnaud</a></li> <li><a href="marcas.asp">Nossas marcas</a></li> </ul> </li> <li><a href="#">Produtos</a> <ul> <li><a href="#">Mosquetões</a> <ul> <li><a href="mosquetoes_rosca.asp">Rosca</a></li> <li><a href="mosquetoes_automaticos.asp">Automático</a></li> <li><a href="mosquetoes_retos.asp">Reto</a></li> <li><a href="mosquetoes_curvos.asp">Curvo</a></li> <li><a href="expressas.asp">Costuras expressas</a></li> <li><a href="mosquetoes_auxiliares.asp">Auxiliares e mailons</a></li> </ul> </li> <li><a href="#">Roupas</a> <ul> <li><a href="underwear.asp">Segunda pele</a></li> <li><a href="roupas_aquecimento.asp">Aquecimento</a></li> <li><a href="impermeaveis.asp">Impermeáveis</a></li> </ul> </li> <li><a href="#">Cintos</a> <ul> <li><a href="cintos_esportivos.asp">Esportivos</a></li> <li><a href="cintos_profissionais.asp">Profissionais</a></li> </ul> </li> <li><a href="#">Cordas</a> <ul> <li><a href="dinamicas.asp">Dinâmicas</a></li> <li><a href="estaticas.asp">Semi-estáticas</a></li> </ul> </li> <li><a href="#">Acessórios</a> <ul> <li><a href="acessorios.asp">Técnicos</a></li> <li><a href="acessorios_camp_trek.asp">Camping / trekking</a></li> </ul> </li> <li><a href="#">Ancoragens</a> <ul> <li><a href="ancoragens.asp">Fixa</a></li> <li><a href="moveis.asp">Móvel</a></li> </ul> </li> <li><a href="ascensores_blocantes.asp">Ascensores & Blocantes</a></li> <li><a href="asseguradores_descensores.asp">Asseguradores & descensores</a></li> <li><a href="barracas.asp">Barracas</a></li> <li><a href="calcados_caminhada.asp">Calçados</a></li> <li><a href="capacetes.asp">Capacetes</a></li> <li><a href="cordeletes_fitas.asp">Cordeletes & fitas</a></li> <li><a href="literatura.asp">Literatura</a></li> <li><a href="mochilas.asp">Mochilas</a></li> <li><a href="polias.asp">Polias</a></li> <li><a href="sacos_dormir.asp">Saco de dormir</a></li> <li><a href="salvamento.asp">Salvamento</a></li> </ul> </li> <li><a href="#">Serviços</a> <ul> <li><a href="curso_escalada.asp">Cursos</a></li> <li><a href="consultoria.asp">Consultoria</a></li> </ul> </li> <li><a href="contato.asp">Contato</a></li> </ul> <script type="text/javascript"> $(document).ready(function(){ $("#menu li").hover(function(){ $(this).find('ul:first').css('display', 'block'); }, function(){ $(this).find('ul:first').css('display', 'none'); }); }); </script> </div> </body> <!-- Inicio Script Flutuação --> <script> //config $float_speed=1500; //milliseconds $float_easing="easeOutQuint"; $menu_fade_speed=500; //milliseconds $closed_menu_opacity=0.75; //cache vars $fl_menu=$("#fl_menu"); $fl_menu_menu=$("#fl_menu .menu"); $fl_menu_label=$("#fl_menu .label"); $(window).load(function() { menuPosition=$('#fl_menu').position().top; FloatMenu(); $fl_menu.hover( function(){ //mouse over $fl_menu_label.fadeTo($menu_fade_speed, 1); $fl_menu_menu.fadeIn($menu_fade_speed); }, function(){ //mouse out $fl_menu_label.fadeTo($menu_fade_speed, $closed_menu_opacity); $fl_menu_menu.fadeOut($menu_fade_speed); } ); }); $(window).scroll(function () { FloatMenu(); }); function FloatMenu(){ var scrollAmount=$(document).scrollTop(); var newPosition=menuPosition+scrollAmount; if($(window).height()<$fl_menu.height()+$fl_menu_menu.height()){ $fl_menu.css("top",menuPosition); } else { $fl_menu.stop().animate({top: newPosition}, $float_speed, $float_easing); } } </script> <!-- Fim Script Flutuação --> </html>Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.