Defino a página para rolar para o topo quando um botão é clicado. Mas primeiro usei uma instrução if para ver se a parte superior da página não estava definida como 0. Então, se não for 0, animar a página para rolar para o topo.
var body = $("body");
var top = body.scrollTop() // Get position of the body
if(top!=0)
{
body.animate({scrollTop:0}, '500');
}
A parte complicada agora é animar algo APÓS a página rolar para o topo. Então, meu próximo pensamento é descobrir qual é a posição da página. Então, eu usei o log do console para descobrir.
console.log(top); // the result was 365
Isso me deu o resultado do 365, acho que esse é o número da posição em que eu estava pouco antes de rolar para o topo.
Minha pergunta é como defino a posição como 0, para poder adicionar outra animação que é executada quando a página está em 0?
Obrigado!
jquery
jquery-animate
scrolltop
Juan Di Diego
fonte
fonte
Respostas:
Para fazer isso, você pode definir uma função de retorno de chamada para o comando animar, que será executado após a conclusão da animação de rolagem.
Por exemplo:
Onde está esse código de alerta, você pode executar mais javascript para adicionar mais animação.
Além disso, o 'swing' está lá para definir a flexibilização. Confira http://api.jquery.com/animate/ para obter mais informações.
fonte
Tente este código:
fonte
$("html")
deve ser usado, porque no seu caso, se você adicionar uma função de retorno de chamada, ela será chamada duas vezes, uma para html e outra para body . E usar o corpo não faz nada.Usa isto:
fonte
para isso, você pode usar o método de retorno de chamada
fonte
Tente isso:
fonte
Solução simples:
rolando para qualquer elemento por ID ou NAME:
código:
fonte
var
é necessário não para substituir o global (se não existir variável global com esse nome)Código com função de clique ()
.toTop
= classe do elemento clicado talvezimg
oua
fonte
fonte
você deve ver isso
ou experimentá-los
fonte
fonte
você pode usar a classe CSS ou o código HTML; para mantê-lo simétrico, sempre uso a classe CSS, por exemplo
fonte