Achei neste site: http://www.leigeber.com/2008/05/horizontal...accordion-menu/ um menu horizontal pronto, utilizando CSS e Javascript, não tive maiores problemas em adaptá-lo ao que necessitava, porém surgiu uma dúvida quanto ao modo como as "abas" abrem quando a página carrega.
O que eu quero é que ao invés da primeira imagem aberta maior que as outras, logo que a página inicia, ficasse a última, que contém o "nome do site" e o link para entrar. Como nesta imagem >> Menu com a última aba maior
Não tenho a mínima experiência com javascript, então, gostaria de saber se é possível fazer o que quero aproveitando este mesmo exemplo. Bom, aguardo respostas, e como disse, sou leiga sobre o assunto, uma explicação mais detalhada me deixaria bem mais feliz ^_^
Pergunta
JackChaz
O problema é o seguinte:
Achei neste site: http://www.leigeber.com/2008/05/horizontal...accordion-menu/ um menu horizontal pronto, utilizando CSS e Javascript, não tive maiores problemas em adaptá-lo ao que necessitava, porém surgiu uma dúvida quanto ao modo como as "abas" abrem quando a página carrega.
Exemplo de como está no momento: menu
O que eu quero é que ao invés da primeira imagem aberta maior que as outras, logo que a página inicia, ficasse a última, que contém o "nome do site" e o link para entrar. Como nesta imagem >> Menu com a última aba maior
Não tenho a mínima experiência com javascript, então, gostaria de saber se é possível fazer o que quero aproveitando este mesmo exemplo. Bom, aguardo respostas, e como disse, sou leiga sobre o assunto, uma explicação mais detalhada me deixaria bem mais feliz ^_^
Segue abaixo os códigos
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Horizontal Slide Menu</title> <link rel="stylesheet" type="text/css" href="slidemenu.css" /> <script type="text/javascript" src="slidemenu.js"></script> </head> <body onload="slideMenu.build('sm',200,10,10,1)"> <div id="geral"> <ul id="sm" class="sm"> <li><img src="images/ex1.gif"></li> <li><img src="images/ex1.gif"></li> <li><img src="images/ex1.gif"></li> <li><img src="images/ex1.gif"></li> <li><img src="images/ex1.gif"></li> <li><img src="images/ex1.gif"></li> <li><img src="images/ex2.jpg"></li> </ul> </div> </body> </html>CSS* {margin:0; padding:0} .sm {list-style:none; width:700px; height:246px; display:block; overflow:hidden} .sm li {float:left; display:inline; overflow:hidden} #geral { width: 700px; height: 400px; top: 50%; left: 50%; margin-top: -123px; margin-left: -350px; position: absolute; }Javascriptvar slideMenu=function(){ var sp,st,t,m,sa,l,w,gw,ot; return{ build:function(sm,sw,mt,s,sl,h){ sp=s; st=sw; t=mt; m=document.getElementById(sm); sa=m.getElementsByTagName('li'); l=sa.length; w=m.offsetWidth; gw=w/l; ot=Math.floor((w-st)/(l-1)); var i=0; for(i;i<l;i++){s=sa[i]; s.style.width=gw+'px'; this.timer(s)} if(sl!=null){m.timer=setInterval(function(){slideMenu.slide(sa[sl-1])},t)} }, timer:function(s){ s.onmouseover=function(){clearInterval(m.htimer);clearInterval(m.timer);m.timer=setInterval(function(){slideMenu.slide(s)},t)} s.onmouseout=function(){clearInterval(m.timer);clearInterval(m.htimer);m.htimer=setInterval(function(){slideMenu.slide(s,true)},t)} }, slide:function(s,c){ var cw=parseInt(s.style.width); if((cw<st && !c) || (cw>gw && c)){ var owt=0; var i=0; for(i;i<l;i++){ if(sa[i]!=s){ var o,ow; var oi=0; o=sa[i]; ow=parseInt(o.style.width); if(ow<gw && c){oi=Math.floor((gw-ow)/sp); oi=(oi>0)?oi:1; o.style.width=(ow+oi)+'px'; }else if(ow>ot && !c){oi=Math.floor((ow-ot)/sp); oi=(oi>0)?oi:1; o.style.width=(ow-oi)+'px'} if(c){owt=owt+(ow+oi)}else{owt=owt+(ow-oi)}}} s.style.width=(w-owt)+'px'; }else{clearInterval(m.timer);clearInterval(m.htimer)} } }; }();--------------------------- PROBLEMA RESOLVIDO O erro estava aqui:if(sl!=null){m.timer=setInterval(function(){slideMenu.slide(sa[sl-1])},t)} },Solução: substituir por 6 o índice do último elementoif(sl!=null){m.timer=setInterval(function(){slideMenu.slide(sa[6])},t)} },Código correto completovar slideMenu=function(){ var sp,st,t,m,sa,l,w,gw,ot; return{ build:function(sm,sw,mt,s,sl,h){ sp=s; st=sw; t=mt; m=document.getElementById(sm); sa=m.getElementsByTagName('li'); l=sa.length; w=m.offsetWidth; gw=w/l; ot=Math.floor((w-st)/(l-1)); var i=0; for(i;i<l;i++){s=sa[i]; s.style.width=gw+'px'; this.timer(s)} if(sl!=null){m.timer=setInterval(function(){slideMenu.slide(sa[6])},t)} }, timer:function(s){ s.onmouseover=function(){clearInterval(m.htimer);clearInterval(m.timer);m.timer=setInterval(function(){slideMenu.slide(s)},t)} s.onmouseout=function(){clearInterval(m.timer);clearInterval(m.htimer);m.htimer=setInterval(function(){slideMenu.slide(s,true)},t)} }, slide:function(s,c){ var cw=parseInt(s.style.width); if((cw<st && !c) || (cw>gw && c)){ var owt=0; var i=0; for(i;i<l;i++){ if(sa[i]!=s){ var o,ow; var oi=0; o=sa[i]; ow=parseInt(o.style.width); if(ow<gw && c){oi=Math.floor((gw-ow)/sp); oi=(oi>0)?oi:1; o.style.width=(ow+oi)+'px'; }else if(ow>ot && !c){oi=Math.floor((ow-ot)/sp); oi=(oi>0)?oi:1; o.style.width=(ow-oi)+'px'} if(c){owt=owt+(ow+oi)}else{owt=owt+(ow-oi)}}} s.style.width=(w-owt)+'px'; }else{clearInterval(m.timer);clearInterval(m.htimer)} } }; }();Editado por JackChazLink para o comentário
Compartilhar em outros sites
0 respostass 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.