3
0

More than 3 years have passed since last update.

【Javascriptライブラリ】sticky-sidebar (追従サイドバー)

Posted at

はじめに

サイドバーの追従のJavascriptライブラリを紹介しようと思います。
Qiitaでは初ものの記事となります。

サイドバーの追従といえば、CSSposition: sticky;で実装するのが通常かと思います。

sticky-sidebarを使うことのメリットとしては、

  • position: sticky;はブラウザによって対応していないものもあるが、sticky-sidebarはJavascriptライブラリなので基本的にはどのブラウザでも動く
  • Javascriptを使ってサイドバーの追従を実現しているため、Bootstrapなど複雑なCSSをいじるのは面倒という方にはとても便利

まずは下記リンク先のデモを使用してみて、便利だと思ったら使用してみてください。

image.png

使い方

GitHubからダウンロード

赤枠部分をクリック。

image.png

パスを確認

ダウンロードしてきたファイルのパスを確認してください。

こちら、**your_path_to**/sticky-sidebar/dist/jquery.sticky-sidebar.min.js

HTML

  1. jQueryライブラリを読み込み
  2. sticky-sidebarのライブラリを読み込み
  3. classを付与( main-content / sidebar / sidebar__inner / content )
  4. jQuery にてstickySidebarを適用
  5. 分かりやすくするためにCSSを追加
sticky-sidebar.html
<!DOCTYPE html>
<html lang="ja">
  <head>
    <meta charset="utf-8">
    <title>Sticky-Sidebar</title>

    <!-- 5. 分かりやすくするためにCSSを追加 -->
    <style type="text/css">
      .container {
        height: 2000px;
        width: 1500px;
      }
      .top-content {
        height: 150px;
        width: 1500px;
        background-color: green;
      }
      .main-content {
        height: 2000px;
      }
      .inner_content {
        height: 200px;
        width: 500px;
        float: left;
        background-color: red;
      }
      .content {
        height: 1200px;
        width: 1000px;
        float: right;
        background-color: blue;
      }
    </style>
  </head>
  <body>
    <div class="container">
      <div class="top-content"></div>

      <!-- 3. classを付与( main-content / sidebar / sidebar__inner / content ) -->
      <div class="main-content">
        <div class="sidebar">
          <div class="sidebar__inner">
            <div class="inner_content">

            </div>
          </div>
        </div>

        <div class="content">
          <!-- Content goes here -->
        </div>
      </div>
    </div>

    <!-- 1. jQueryライブラリを読み込み -->
    <script type="text/javascript" src="jquery-3.5.1.min.js"></script>
    <!-- 2. sticky-sidebarライブラリを読み込み -->
    <script type="text/javascript" src="jquery.sticky-sidebar.min.js"></script>

    <!-- 4. jQuery にて、stickySidebarを適用 -->
    <script type="text/javascript">
      $('.sidebar').stickySidebar({
        topSpacing: 150,
        bottomSpacing: 0,
        containerSelector: '.main-content',
        innerWrapperSelector: '.sidebar__inner'
      });
    </script>
  </body>
</html>

まとめ

めちゃ使いやすいライブラリですので、是非使ってみてください。

3
0
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
3
0