jQuery UI Accordion Проблема прокрутки

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


person Eyeball    schedule 06.10.2010    source источник


Ответы (1)


Вы можете привязать функцию к событию 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.

Ссылки

person Drew Gaynor    schedule 24.12.2011