0

ポップアップ内で小さなスクロールバーを使用しました。スクロール div にはアコーディオン メニューがあります。

アコーディオン メニューを展開すると、スクロール バーが拡張されますが、何らかの理由で下にスクロールすると最後のアコーディオン項目が表示されません。最後のアイテムが見えないように、一定の高さを取っていると思います。

また、新しいアコーディオン メニューがクリックされるたびに、スクロール バーが再び div の先頭から開始されますが、これをメニューの場所にとどめたいと思います。

これが以下のコードとデモです

$('#test').click(function(){
        $('#dialog').show();
    $('#scrollbar1').tinyscrollbar();   
     $('#overlay').show();
});
//Accordion
    $('#accordion-3').dcAccordion({
        eventType: 'click',
        autoClose: true,
        saveState: false,
        disableLink: false,
        showCount: false,
        speed: 'slow'
    });
$('#accordion-3').click(function(){
    $('#scrollbar1').tinyscrollbar();
    });

デモ

4

1 に答える 1

0

私がフィドルで見たものから、折りたたみ時にアコーディオンの高さが変更されると、tinyscrollbar は更新されません。これには、tinyscrollbar の update() メソッドを使用する必要があります。しかし、奇妙なことに、アニメーションの後に更新を挿入できるように、dcaccordion のドキュメントにバインド可能なイベントが見つかりませんでした。jquery UIのアコーディオンを使用するように例を少し変更しましたが、それでうまく機能します。好きなようにカスタマイズできます。それが役に立てば幸い。これは私の変更されたコードです:

$('#accordion-3').accordion({
activate: function (event, ui) {
    var oScrollbar = $('#scrollbar1');
    oScrollbar.tinyscrollbar_update('relative');
},
heightStyle: "content",
alwaysOpen: false,
active: false,
collapsible: true

});

ここで修正されたフィドル

于 2013-06-27T10:18:48.973 に答える