scrollTop jquery, прокрутка до div с идентификатором? - PullRequest
33 голосов
/ 30 декабря 2010

Итак, это текущий код, который у меня есть

$(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;
    });
});

Когда вы нажимаете на ссылку, например, «abouta», она прокручивается до этого конкретного раздела страницы.Я бы предпочел сделать scrollTo, а затем идентификатор div, чтобы мне не приходилось постоянно менять позицию scrollTo, если я изменяю отступы и т. Д. Есть ли способ?Спасибо

Ответы [ 5 ]

102 голосов
/ 30 декабря 2010

вместо

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

использование

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

это вернет абсолютную верхнюю позицию любого элемента, который вы выбрали как #div_id

1 голос
/ 11 ноября 2018

Мое решение было следующим:

document.getElementById("agent_details").scrollIntoView();
0 голосов
/ 26 февраля 2015

попробуйте

    $('#div_id').animate({scrollTop:0}, '500', 'swing');
0 голосов
/ 14 марта 2014

попробуйте это:

$('html, body').animate({scrollTop:$('#xxx').position().top}, 'slow');
$('#xxx').focus();
0 голосов
/ 05 июля 2012

Если вы хотите прокрутить только какой-то элемент div, можете использовать идентификатор div вместо 'html, body'

$('html, body').animate(...

использование

$('#mydivid').animate(...
...