Ce que j'essaie de faire, c'est de faire en sorte que si vous cliquez sur un bouton, il défile vers le bas (en douceur) jusqu'à un div spécifique sur la page.
Ce dont j'ai besoin, c'est que si vous cliquez sur le bouton, il défile en douceur jusqu'à la div «seconde».
.first {
width: 100%;
height: 1000px;
background: #ccc;
}
.second {
width: 100%;
height: 1000px;
background: #999;
}
<div class="first"><button type="button">Click Me!</button></div>
<div class="second">Hi</div>
javascript
jquery
Erik Fischer
la source
la source
Réponses:
faire:
Jsfiddle mis à jour
la source
Il existe de nombreux exemples de défilement fluide à l'aide de bibliothèques JS telles que jQuery, Mootools, Prototype, etc.
L'exemple suivant est sur du JavaScript pur. Si vous n'avez pas de jQuery / Mootools / Prototype sur la page ou si vous ne voulez pas surcharger la page avec de lourdes bibliothèques JS, l'exemple vous sera utile.
http://jsfiddle.net/rjSfP/
Partie HTML:
Partie CSS:
Partie JS:
la source
J'ai joué un peu avec la réponse de nico et c'était nerveux. J'ai fait un peu d'enquête et j'ai trouvé
window.requestAnimationFrame
quelle fonction est appelée à chaque cycle de repeinture. Cela permet une animation plus propre. J'essaie toujours de se concentrer sur de bonnes valeurs par défaut pour la taille des pas, mais pour mon exemple, les choses semblent plutôt bonnes en utilisant cette implémentation.la source
scrollContainer = scrollContainer.parentNode
, scrollContainer est nul. Cela signifie probablement que vous ne transmettez pas la valeur correcteelementId
lors de l'appel de cette fonction. Il est également possible que vous exécutiez ce script sur une page où cet elementId n'existe pas.elementId
eu tort, j'aurais reçu la même erreur dans le cas de l'exemple de @nico, mais dans ce cas, le défilement fonctionne mais pas correctement.requestAnimationFrame
au lieu desetTimeout
est la voie à suivre.setTimeout
ne doit pas être utilisé pour les animations.Et si vous utilisez la fonction scrollIntoView?
A un {comportement: "smooth"} aussi ....;) https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollIntoView
la source
J'ai pris la version de Ned Rockson et je l' ai ajustée pour permettre également les défilements vers le haut.
la source
Vous pouvez utiliser le CSS de base pour obtenir un défilement fluide
la source