Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

JackChaz

[Resolvido] Slide Menu Horizontal

Recommended Posts

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

 

Ao invés daquela primeira imagem sendo carregada maior que as outras, eu queria que a última, com o nome do site e o link de "entre" fosse.

 

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 :rolleyes:

 

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>

* {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;
}

var 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)}
		}
	};
}();

Compartilhar este post


Link para o post
Compartilhar em outros sites

nao sei se entendi bem mas para você colocar o nome do seu site e so ir na imagem ex2.jpg e alterar o nome num programa de edicao de imagem. No photoshop faz isso em segundos.

 

 

Depois e so salver e substituir pela anterior

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não, Webmind, não é isso que eu quero. A alteração de imagem eu vou fazer, estas foram só um exemplo pra representar.

 

O que eu quero é que, ao invés de como está nesta página >> menu, assim que a mesma carregasse aparecesse da seguinte forma

 

Imagem Postada

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vou debugar o codigo para ver como funciona linha a linha

 

 

 

e isso ae ja era demorou

 

if(sl!=null){m.timer=setInterval(function(){slideMenu.slide(sa[6])},t)} // aqui esta a sabedoria kkk substitui por 6 o indice do ultimo elemento, ou seja sao 7 imagens mas como os indices comecam em zero e 6

 

<script type="text/javascript">
var 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)}
		}
	};
}();
</script>

 

 

Espero ter ajudado

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.