Ir para conteúdo

POWERED BY:

Arquivado

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

Buthy

Ir para o topo da página quando clicar em link

Recommended Posts

Então, tem uns links que quando clica vai pra tal pagina, essa pagina eh carregada dentro de uma div...

Queria saber para quando clicar nesse link, ele vai pra pagina, e junto vai pro topo da pagina...

 

só sei do <a name="topo"></a> com o link tipo contato.php#topo.. mas assim não funciona, provavelmente por esta pagina estar sendo carregada dentro de uma div...

 

Pesquisei alguns plugins Jquery, mas os que eu vi são pra criar botões de ir para o topo.. o botão que eu quero eh um botao normal, que vai pra uma outra pagina e ao mesmo vá ao topo, não para somente ir ao topo...

 

Se alguem souber de algo..

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

está usando ajax para carregar a página ?

 

se estiver, você pode alterar o scrollTop, dessa forma:

http://wbruno.com.br/blog/2011/06/24/rolagem-de-scroll-para-iframe-efeito-de-ancora/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então, tentei do jeito do post, e não deu certo não...

 

<script type="text/javascript">  
window.onload = function(){  
       document.getElementById(('topo').onclick = function(){  

               documentdocument.body.scrollTop = document.getElementById('page').offsetTop;  

       }  
}  
</script>

<a href="pagina.php" target="page" id="topo">ir para pagina</a>

 

"page" é a id da div onde são carregadas as páginas

Compartilhar este post


Link para o post
Compartilhar em outros sites

tem vários erros de sintaxe.

 

revise o script. Se não entender, apertr Ctrl+Shif+J no Firefox, e corrija os erros.

 

e você precisa somar esse script, com o teu que faz a requisiçao ajax. Assim isoladamente, um vai anular o outro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

tentei algo assim:

  <script type="text/javascript"> 
   $(document).ready(function(){  
    $('#page').load('inicial.php');
       $(".abrirpag a").live('click',function( e ){  
           e.preventDefault();  
           var href = $( this ).attr('href');  
           if( $( this ).attr('target')=='_blank' )
		window.open( href );
		else
		$("#page").load( href + "#page");  
       	document.getElementById(('#topo').onclick = function(){  
			documentdocument.body.scrollTop = document.getElementById('#page').offsetTop; 
		}
       });  
   });  
   </script>  

 

e também não funcionou

tentei mudar outras coisas tambem, mas nada :S

Compartilhar este post


Link para o post
Compartilhar em outros sites

tem erros de sintaxe, de lógica e está mal indentado.

corrija oque aparecer no console de erros Ctrl+Shif+J

 

 

não adianta você copiar e colar script sem entender oque fazem. Estude.

Compartilhar este post


Link para o post
Compartilhar em outros sites

no console de erros aparece só isso:

 

Alerta: Esperado “:” mas encontrado “false”. Declaração ignorada.

Arquivo-fonte: http://www.grupodeixestar.com.br/index.php

Linha: 0

 

na "minha" lógica, era pra isso funcionar:

<script type="text/javascript"> 
   $(document).ready(function(){  
       $('#page').load('inicial.php');
       $(".abrirpag a").live('click',function( e ){  
           e.preventDefault();  
           var href = $( this ).attr('href');  
           if( $( this ).attr('target')=='_blank')
			window.open( href );
			else{
				$("#page").load( href + "#page");  
				document.getElementById(('page').onclick = function(){  
					document.body.scrollTop = document.getElementById('topo').offsetTop; 
				}
			}
       });  
   });  

 

mas não funciona!

e li e re-li o codigo, e não encontrei mais erros de sintaxe

Compartilhar este post


Link para o post
Compartilhar em outros sites

tem 2 ((

document.getElementById(('page')

 

mas na verdade, você não precisava esperar o click.. você tinha q chamar direto, sem o click.

Compartilhar este post


Link para o post
Compartilhar em outros sites

<script type="text/javascript"> 
   $(document).ready(function(){  
       $('#page').load('inicial.php');
       $(".abrirpag a").live('click',function( e ){  
           e.preventDefault();  
           var href = $( this ).attr('href');  
           if( $( this ).attr('target')=='_blank')
           	window.open( href );
               else{
               	$("#page").load( href + "#page");  
                   document.body.scrollTop = document.getElementById('#topo').offsetTop; 
               }
       });  
   });  
</script>

 

O local que eu to chamando está certo né?

Agora ficou a duvida dessa linha

document.body.scrollTop = document.getElementById('#topo').offsetTop; 

 

nao seria tipo um document.body.scrolltop();

só isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

.scrollTop do js é uma propriedade não um método

 

não 'chute', pesquise.

https://developer.mozilla.org/en/DOM/element.scrollTop

 

essa função:

getElementById('page')

você deve enviar apenas a string, sem o #

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se você quer que vá apenas para o topo da pagina depois que ela estiver carregada no DIV, faz ela rodar um javascript assim:

 

 

1 - Carrega pagina na div

2 - apos carregar a pagina aciona a função paraotop() que sege a baixo:

 


function paraotop() {

document.getElementById("IDdaSuaDiv").scrollTop = 0;

}

 

 

Abraços!

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.