web-dev-qa-db-fra.com

scrollTop jquery, défilement de div avec id?

C'est donc le code actuel que j'ai

$(document).ready(function() {
    $('.abouta').click(function(){
        $('html, body').animate({scrollTop:308}, 'slow');
        return false;
    });
    $('.portfolioa').click(function(){
        $('html, body').animate({scrollTop:708}, 'slow');
        return false;
    });
    $('.contacta').click(function(){
        $('html, body').animate({scrollTop:1108}, 'slow');
        return false;
    });
});

Lorsque vous cliquez sur un lien, par exemple 'abouta' fait défiler jusqu'à cette section spécifique de la page. Je préfère faire un scrollTo puis l'identifiant d'un div pour ne pas avoir à changer continuellement la position du scrollTo si je change de padding, etc. Y a-t-il un moyen? Merci.

31
Jake

au lieu de 

$('html, body').animate({scrollTop:xxx}, 'slow');

utilisation

$('html, body').animate({scrollTop:$('#div_id').position().top}, 'slow');

cela retournera la position absolue absolue de l'élément sélectionné comme #div_id

99
jondavidjohn

essaye ça:

$('html, body').animate({scrollTop:$('#xxx').position().top}, 'slow');
$('#xxx').focus();

Ma solution était la suivante:

document.getElementById("agent_details").scrollIntoView();
0