JQuery UI Аккордеонная прокрутка проблема - PullRequest
1 голос
/ 07 октября 2010

У меня есть страница с несколькими разделами значительно разной длины в JQuery UI Accordion.Если я открою новый раздел (который сворачивает один из более длинных разделов выше), я останусь внизу страницы.Поскольку секции имеют существенно различную высоту, я не могу использовать функцию автоподъема, если она не выглядит очень странно.Есть ли способ использовать что-то вроде scrollto для автоматического перехода в начало только что расширенного раздела?

1 Ответ

2 голосов
/ 24 декабря 2011

Вы можете привязать функцию к событию accordionchange и использовать jQuery scrollTop():

JavaScript

$(function () {
    $("#accordion").accordion({
        autoHeight: false,
        header: "h3"
    });

    $('#accordion').bind('accordionchange', function (event, ui) {
        $(window).scrollTop(ui.newHeader.offset().top);
    });
});

HTML

<div id="accordion">
    <div id="accordion-one">
        <h3><a href="#">First</a></h3>
        <div>Some lengthy text</div>
    </div>
    <div id="accordion-two">
        <h3><a href="#">Second</a></h3>
        <div>Less lengthy text</div>
    </div>
    <div id="accordion-three">
        <h3><a href="#">Third</a></h3>
        <div>Other text</div>
    </div>
</div>

Я проверял это в FF8.

Ссылки

...