Como rolar para o topo da página usando JavaScript? É desejável mesmo que a barra de rolagem salte instantaneamente para o topo. Não estou procurando uma rolagem suave.
javascript
scroll
KingNestor
fonte
fonte
Respostas:
Se você não precisar alterar a animação, não precisará usar nenhum plug-in especial - eu apenas usaria o método JavaScript window.scrollTo nativo - passar 0,0 moverá a página instantaneamente para o canto superior esquerdo instantaneamente .
Parâmetros
fonte
window.scrollTo(0, document.body.scrollHeight);
Se você deseja uma rolagem suave, tente algo como isto:
Isso pega qualquer
<a>
marcahref="#top"
e torna a rolagem suave até o topo.fonte
window.pageYOffset
seria a propriedade do objeto e windowl̶e̶m̶e̶n̶t window da janela.Tente isso para rolar no topo
fonte
Melhor solução com animação suave:
Referência: https://developer.mozilla.org/en-US/docs/Web/API/Window/scrollTo#Example
fonte
ScrollOptions
(para determinados navegadores): github.com/iamdustan/smoothscrollVocê não precisa do jQuery para fazer isso. Uma tag HTML padrão será suficiente ...
fonte
Todas essas sugestões funcionam muito bem para várias situações. Para aqueles que acham desta página através de uma pesquisa, também se pode dar esta uma tentativa. JQuery, sem plug-in, role para o elemento
fonte
rolagem suave, javascript puro:
fonte
Editar:
Outra maneira de rolar com a margem superior e esquerda:
fonte
animate
função, em vez disso você deve usar:$('html, body').animate({scrollTop:(scroll_pos)}, 2000);
em html
fonte
Realmente estranho: esta questão está ativa há cinco anos e ainda não há resposta JavaScript baunilha para animar a rolagem ... Então, aqui está:
Se desejar, você pode agrupar isso em uma função e chamar isso através do
onclick
atributo Verifique este jsfiddleNota: Essa é uma solução muito básica e talvez não seja a mais eficiente. Um exemplo muito elaborado pode ser encontrado aqui: https://github.com/cferdinandi/smooth-scroll
fonte
Se você quiser fazer uma rolagem suave, tente o seguinte:
Outra solução é o método window.scrollTo do JavaScript:
Parâmetros:
fonte
Com
window.scrollTo(0, 0);
é muito rápido, tentei o exemplo de Mark Ursino, mas no Chrome nada acontece
e achei isso
testei todos os três navegadores e funciona
usando o blueprint css;
é quando um cliente clica no botão "Reservar agora" e não tem o período de locação selecionado, move-se lentamente para o topo onde estão os calendários e abre uma caixa de diálogo apontando para os 2 campos, depois de 3 segundos desaparece
fonte
Um monte de usuários recomendamos selecionar ambas as tags html e body para compatibilidade cross-browser, assim:
Isso pode atrapalhá-lo se você estiver contando com o retorno de chamada sendo executado apenas uma vez. De fato, ele será executado duas vezes porque você selecionou dois elementos.
Se isso é um problema para você, você pode fazer algo assim:
A razão pela qual isso funciona é no Chrome
$('html').scrollTop()
retorna 0, mas não em outros navegadores, como o Firefox.Se você não quiser esperar a animação ser concluída, caso a barra de rolagem já esteja no topo, tente o seguinte:
fonte
O velho
#top
pode fazer o truqueFunciona bem em FF, IE e Chrome
fonte
fonte
Tente isto
fonte
$(document).scrollTop(0);
também funciona.fonte
Solução não jQuery / JavaScript puro:
fonte
Isso funcionará:
window.scrollTo(0, 0);
fonte
Tente este código:
div => Dom Elemento para o qual você deseja mover a rolagem.
time => milissegundos, defina a velocidade do pergaminho.
fonte
Solução JavaScript pura:
Eu escrevo uma solução animada no Codepen
Além disso, você pode tentar outra solução com a
scroll-behavior: smooth
propriedade CSS .fonte
Por que você não usa a função embutida JQuery scrollTop:
Curto e simples!
fonte
Você não precisa do JQuery. Simplesmente você pode chamar o script
ao clicar no botão "Ir para o topo"
Exemplo de demonstração:
output.jsbin.com/fakumo#
PS: Não use essa abordagem quando estiver usando bibliotecas modernas como angularjs. Isso pode ter quebrado o hashbang da URL.
fonte
Basta usar este script para rolar para o topo direto.
fonte
Se você não quiser uma rolagem suave, poderá trapacear e interromper a animação de rolagem suave assim que iniciá-la ... assim:
Eu não tenho idéia se é recomendado / permitido, mas funciona :)
Quando você usaria isso? Não tenho certeza, mas talvez quando você queira usar um clique para animar uma coisa com o Jquery, mas faça outra sem animação? ou seja, abra um painel de login do administrador na parte superior da página e pule instantaneamente para o topo para vê-lo.
fonte
Motivação
Esta solução simples funciona nativamente e implementa uma rolagem suave para qualquer posição.
Evita o uso de links âncora (aqueles com
#
) que, na minha opinião, são úteis se você deseja vincular a uma seção, mas não são tão confortáveis em algumas situações, especialmente quando apontam para o topo, o que pode levar a dois URLs diferentes que apontam para o mesmo local ( http://www.example.org e http://www.example.org/# ).Solução
Coloque um ID na tag para a qual você deseja rolar, por exemplo, sua primeira seção , que responde a essa pergunta, mas o ID pode ser colocado em qualquer lugar da página.
Então, como um botão, você pode usar um link, basta editar o atributo onclick com um código como este.
Onde o argumento de
document.getElementById
é o ID da tag para a qual você deseja rolar após clicar.fonte
Você pode simplesmente usar um destino no seu link, como #someid, em que #someid é o ID da div.
Ou você pode usar qualquer número de plugins de rolagem que tornem isso mais elegante.
http://plugins.jquery.com/project/ScrollTo é um exemplo.
fonte
Você pode tentar usar o JS como neste Fiddle http://jsfiddle.net/5bNmH/1/
Adicione o botão "Ir para o topo" no rodapé da página:
fonte
fonte
Nenhuma das respostas acima funcionará no SharePoint 2016.
Tem que ser feito assim: /sharepoint/195870/
fonte