Jquery scrollTop не работает с slideToggle и скрытым div - PullRequest
2 голосов
/ 06 марта 2012

У меня есть скрытый div, и при нажатии на ссылку он переключает содержимое, чтобы выскользнуть. К сожалению, я не могу заставить его прокрутить вниз до верхней части div, когда он показан в самом низу страницы. Я сделал это с помощью обычного JavaScript, но вместо этого хочу сделать это с помощью Jquery.

Jquery:

// Toggle Terms
$('.toggleTerms').click(function(){
$('#displayTerms').slideToggle("slow", function(){
    if($('#displayTerms').is(":visible")){
        $('#displayTerms').animate({
            scrollTop: $('#displayTerms').position().top
        }, "slow"
    )}
});

});

Ссылка:

<a href="javascript:void(0);" class="toggleTerms">Terms</a>

Содержание:

<div id="displayTerms" style="display:none; overflow:hidden;">The Terms</div>

Кстати, он открывается и закрывается просто отлично. Это то, что у меня есть.

Ответы [ 2 ]

0 голосов
/ 06 марта 2012

Спасибо Ник Симоне за то, что приблизил меня.Ответ:

// Toggle Terms
$('.toggleTerms').click(function(){
$('#displayTerms').slideToggle("slow", function(){
    if($('#displayTerms').is(":visible")){
        $("html, body").animate({scrollTop: $('#displayTerms').offset().top});
    }
});
});
0 голосов
/ 06 марта 2012

Взгляните на это:

http://fiddle.jshell.net/GDtHJ/

Здесь я анимирую положение прокрутки тела вместо #displayTerms - потому что мы хотим, чтобы позиция тела переместилась в # displayTerms'stop.

Надеюсь, это поможет.

о, вы можете изменить размер своего браузера, чтобы убедиться, что у него есть окно прокрутки в нижней правой панели в jsfiddle - иначе вы не увидите его прокрутки: P

...