LoginSignup
0
2

More than 5 years have passed since last update.

ページ下部にテーブルと連動する横スクロールバーをつくる。

Last updated at Posted at 2019-04-08

◆目的

テーブルの中身が多くて、横スクロールバーが出たときに、画面下部にもそれと連動するスクロールバーを作成する。

◆実装

テーブルと連動するダミーを用意して、目的を達成する。

<div class="dummy-table-frame" style="height:30px; bottom: 0; position: fixed; overflow-x: auto">
    <div class="dummy-table" style="height: 1px"></div>
</div>

<script>
    $(function() {
     //ダミーテーブル
        const dummyTableFrame = $('.dummy-table-frame');
        const dummyTable      = $('.dummy-table');

        //実際のテーブル
        const tableFrame      = $('.table-frame');
        const table           = tableFrame.get(0);

        //dummyのサイズも実際のテーブルサイズに合わせる
        dummyTableFrame.width(tableFrame.width());
        dummyTable.width(table.scrollWidth);

        //ページのサイズが変わったらdummyのサイズも実際のテーブルサイズに合わせる
        $(window).resize(function(){
            const tableFrameSize = tableFrame.width();
            const tableSize      = table.scrollWidth;

            dummyTableFrame.width(tableFrameSize);
            dummyTable.width(tableSize);
        });

        //スクロールバーを連動させる
        dummyTableFrame.get(0).onscroll = () => {
            table.scrollLeft = dummyTableFrame.get(0).scrollLeft;
        };
        table.onscroll = () => {
            dummyTableFrame.get(0).scrollLeft = table.scrollLeft;
        };
    });
</script>

テーブルの下に、中身が何もないダミーのフレームと入れ物を作成。styleで画面下部に固定する。あとは連動させるjsかいてOK

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2