Ir para conteúdo

POWERED BY:

Arquivado

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

Scaico

Site com topo-fixo

Recommended Posts

Fala galera, beleza?

 

Antes de tudo, quero avisar que não posso colocar nada no ar porque simplesmente não tenho nada pronto ainda. Hehehe. Estou apenas vendo a viabilidade do projeto.

 

O que eu preciso é o seguinte:

 

O site possuirá um topo animado em flash e um menu em CSS abaixo.

O que eu quero saber é:

Existe alguma maneira de fazer com que o topo fique FIXO, sem usar iFrame?

 

O cliente requisitou que a animação do topo do site seja constante, independente da navegação.

 

Eu poderia fazer isso em iFrame, sem problema.

Basicamente, ficaria:

 

TOPO

ANIMACAO

MENU

------

IFRAME COM O CONTEUDO

 

e todos os links do menu seriam enviados para o iFrame.

 

MASSSS...

Eu ouvi dizer que iFrame não valida. É fato?

Porque se for, eu não estou disposto a usar.

 

Existe alguma outra solução?

 

Espero ter explicado direitinho... Qualquer duvida, estou aqui o dia inteiro! :D

 

(silverfox, me salva dessa... tenho certeza que você tira de letra. Hahaha)

 

\o

Compartilhar este post


Link para o post
Compartilhar em outros sites

então, hgb7...

Primeiro, valeu pela resposta!

 

Mas pelo que li do post que você indicou, não parece resolver o meu problema.

 

O topo terá uma animação, mas o site terá uma infinidade de páginas internas... E eu preciso que a animação continue rolando mesmo quando a pessoa troque de página.

 

Ou seja, se eu estou na HOME e vou para CONTATO, o conteúdo muda, mas o topo continua com a animação rolando, do jeitinho que estava. Sacou?

 

Vou tentar fazer um exemplo básico, pra situar melhor.

 

Abraços,

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, para fazer essa troca de conteudo, sem recarregar toda a página, a opção viável é o uso do AJAX.

Qndo você diz "fixo", é somente isso? ou pretende que ele não se mova com o rolar do mouse?

 

se for isso, basta usar um position:fixed, e os demais consertos para o IE aceitar isso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

op William, beleza? :D

 

Quando eu disse fixo, era isso mesmo. Usei a palavra errada...

 

Eu consegui com Ajax!

 

Quer dizer, mais ou menos... Hahahaha

Já tenho a funcao correta:

 

<script type="text/javascript">

/***********************************************
* Ajax Includes script- © Dynamic Drive DHTML code library (www.dynamicdrive.com)
* This notice MUST stay intact for legal use
* Visit Dynamic Drive at http://www.dynamicdrive.com/ for full source code
***********************************************/

//To include a page, invoke ajaxinclude("afile.htm") in the BODY of page
//Included file MUST be from the same domain as the page displaying it.

var rootdomain="http://"+window.location.hostname

function ajaxinclude(url) {
var page_request = false
if (window.XMLHttpRequest) // if Mozilla, Safari etc
page_request = new XMLHttpRequest()
else if (window.ActiveXObject){ // if IE
try {
page_request = new ActiveXObject("Msxml2.XMLHTTP")
} 
catch (e){
try{
page_request = new ActiveXObject("Microsoft.XMLHTTP")
}
catch (e){}
}
}
else
return false
page_request.open('GET', url, false) //get page synchronously 
page_request.send(null)
writecontent(page_request)
}

function writecontent(page_request){
if (window.location.href.indexOf("http")==-1 || page_request.status==200)
document.write(page_request.responseText)
}

</script>

e pra chamar:

<script type="text/javascript">
ajaxinclude("arquivo.php")
</script>

Só que eu não faço ideia de como chamar isso em um link! :(

Compartilhar este post


Link para o post
Compartilhar em outros sites

<a href="java script: ajaxinclude('arquivo.php');">Arquivo</a>

não aconselho carregar paginas inteiras em ajax!

 

experiencia propria!

 

se for apenas por causa do topo e não tiver jeito mesmo de ele carregar varias vezes, sugiro o Iframe!

 

qualquer coisa poste ai

 

 

abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

fala Aprendiz!

 

então... infelizmente, por exigencia do cliente, o topo tem que ser constante. :/

 

o iFrame tem 2 problemas:

- Não valida (é verdade isso? No final nem testei)

- Não tem como fazer com height relativo. Eu preciso setar um valor X pra ele e se a pagina que ele vai conter tiver mais que isso, já era.

 

Para o segundo problema, talvez uma "gambi" resolva:

coloco o iframe com height de 2000px, dentro de uma div... e a div com overflow:hidden...

 

Não sei se funciona... Se por acaso der pra validar iFrame, até tento

 

EDIT:

 

Ok, consigo validar com iFrame numa boa...

Só que o problema do height permanece e a gambiarra acima não funciona.

Compartilhar este post


Link para o post
Compartilhar em outros sites

fala Aprendiz!

Ok, consigo validar com iFrame numa boa...

Só que o problema do height permanece e a gambiarra acima não funciona.

opa!

 

iframe você disse que valida então menos um pergunta!

 

agora a segundo pergunta!!!

 

http://forum.imasters.com.br/index.php?showtopic=214493

 

abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fala aprendiz! :D

 

Tinha acabado de achar essa dica (não aqui, mas é a mesma coisa) e tava testando antes de vir aqui postar.

Valeu!

 

Só que é obvio que uma solução nunca vem sem outro problema.

Em compensação esse eu acho que não tem solução... Vou ter que explicar isso pro cliente e tentar tirar essa ideia da cabeça dele.

 

O problema é o seguinte:

Ok, funciona. Só que se alguem tentar entrar pelo site por alguma pagina interna (digamos contato.php) ele não verá o topo e, por conseqüência, o menu... pois eles estarão apenas no index.php... Correto?

 

E ainda acho que isso pode dar problema com o Analytics tambem.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ai é complicado...

 

a melhor coisa é carregar varias vezes!!!

 

ou use o AJAX mesmo, apesar de eu não recomendar!

 

abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

O Ajax teria o mesmo problema do iFrame... ele nao sairia da pagina index.php e se alguem entrasse via contato.php não iria ver o topo.

 

Já estou estudando uma proposta para o cliente, de vários banner curtos e aleatorios, que mudariam conforme as páginas, sempre de forma randomica... Quem sabe isso não agrada.

 

Só queria que o tópico continuasse aberto caso alguem descubra uma forma de resolver o problema acima.

Compartilhar este post


Link para o post
Compartilhar em outros sites

e se fizer assim

 

<div id="topo">
<?php include("topo.php"); ?>
</div>

coloca isso em todas as páginas!

 

ai quando mudar a pagina topo altera em todas!

 

abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então, aprendiz...

É que na verdade, está assim:

 

INDEX:

 

TOPO COM FLASH + MENU

---

IFRAME COM O CONTEUDO

 

Conforme eu vou clicando no menu, o conteudo vai mudando dentro do Frame. Beleza.

Se eu clicar em CONTATO, ele vai abrir o contato.php lá dentro. Ótimo.

 

Mas se eu digitar www.site.com.br/contato.php na barra de endereços, ele vai mostrar sem o topo.

 

E agora o problema:

Se eu colocar o código que você passou em todas as páginas, quando acessar pela INDEX, o topo vai aparecer duas vezes... Uma vez por causa do Index e uma vez por causa do CONTATO.

 

A solução que você sugeriu é o que eu sempre uso nas minhas páginas (só que em asp)... Quando não existe a necessidade do flash o tempo inteiro. :/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá,

 

Isso é uma questão de dinamismo. Aconselho PHP. Ajax não posso aconselhar porque nunca usei.

Quando falei em PHP não precisa de ser necessariamente PHP, pode ser ASP ou uma outra linguagem que você melhor se adapte..

Existe muita informação na Internet acerca de páginas dinâmicas, experimente pesquisar no Google por 'Criando páginas web dinâmicas'.. É apenas uma sugestão.

 

PS: Não aconselho o uso do IFRAME :s.

 

Cumps

Compartilhar este post


Link para o post
Compartilhar em outros sites

ou use o AJAX mesmo, apesar de eu não recomendar!

Tem questões que o Ajax podem ser sim usados dessa maneira, por exemplo quando ouver players de musica, mas desde que mantenha-se a Acessibilidade.

 

por exemplo assim deveria ser:

<a href="arquivo.php" onclick="ajaxinclude(this.href); return false;">Arquivo</a>

Mas em todos os outros casos o que o Aprendiz CSS disse é bem mais certo ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia, Silverfox. Beleza?

 

Não entendi a aplicação da sua sugestão... :(

 

E com relação ao que o Aprendiz sugeriu, você diz o include?

Porque isso não resolve o problema, já que eu teria 2 topos ao inves de um... :(

Compartilhar este post


Link para o post
Compartilhar em outros sites

você pode incluir um arquivo com outro nome

 

por exemplo

 

manda fazer o include do arquivo inc.contato.php

 

na url você passa apenas contato

 

ai no php você concatena

 

$url = "inc.".$pagina.".php";if ( file_exists($url) ) {	include($url);} else {	include("erro.php");}
espero que te ajude!

 

abrçao

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.