ブートストラップ3のサンプルoffcanvasを流用してaffixとScrollSpyを使ったサンプルレイアウトを作成しました。これによって、ページ内をスクロールするとその位置に応じてサイドバーのリンクがアクティブになります。
以下、Bootstrap v3.3.7を使って確認しています。
※デモはこちらをクリック。
1)修正したポイント
・bodyタグにサイドバーをターゲットとしてScrollSpyを設定
<body data-spy=”scroll” data-target=”#sidebar”>
・サイドバーにaffixの設定
<div id=”sidebar” data-spy=”affix” data-offset-top=”160″ data-offset-bottom=”100″>
・サイドバーのリストグループを下記のように変更
<ul class=”nav nav-pills nav-stacked”>
・affixに関する下記スタイルシート設定をoffcanvas.css内に追加
.affix{ position:fixed; top:150px; }
2)サンプルコード
<!DOCTYPE html> <html> <head> //// <link href="css/bootstrap.min.css" rel="stylesheet"> <link href="css/offcanvas.css" rel="stylesheet"> </head> <body data-spy="scroll" data-target="#sidebar"> <nav class="navbar navbar-fixed-top navbar-inverse"> <div class="container"> <div class="navbar-header"> <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar"> <span class="sr-only">Toggle navigation</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> <a class="navbar-brand" href="#">Project name</a> </div> <div id="navbar" class="collapse navbar-collapse"> <ul class="nav navbar-nav"> <li class="active"><a href="#">Home</a></li> <li><a href="#about">About</a></li> <li><a href="#contact">Contact</a></li> </ul> </div><!-- /.nav-collapse --> </div><!-- /.container --> </nav><!-- /.navbar --> <div class="container"> <div class="jumbotron"> ///// </div> <div class="row row-offcanvas row-offcanvas-right"> <div class="col-xs-12 col-sm-9"> <p class="pull-right visible-xs"> <button type="button" class="btn btn-primary btn-xs" data-toggle="offcanvas">Toggle nav</button> </p> <div class="row"> <div class="col-xs-6 col-lg-4"> <h2 id="one">Heading1</h2> ///// </div><!--/span--> <div class="col-xs-6 col-lg-4"> <h2 id="two">Heading2</h2> ///// </div><!--/span--> <div class="col-xs-6 col-lg-4"> <h2 id="three">Heading3</h2> ///// </div><!--/span--> <div class="col-xs-6 col-lg-4"> <h2 id="four">Heading4</h2> ///// </div><!--/span--> <div class="col-xs-6 col-lg-4"> <h2 id="five">Heading5</h2> ///// </div><!--/span--> <div class="col-xs-6 col-lg-4"> <h2 id="six">Heading6</h2> ///// </div><!--/span--> </div><!--/row--> </div><!--/span--> <div class="col-xs-6 col-sm-3 sidebar-offcanvas" role="navigation"> <div id="sidebar" data-spy="affix" data-offset-top="160" data-offset-bottom="100"> <ul class="nav nav-pills nav-stacked"> <li><a href="#one">Heading1</a></li> <li><a href="#two">Heading2</a></li> <li><a href="#three">Heading3</a></li> <li><a href="#four">Heading4</a></li> <li><a href="#five">Heading5</a></li> <li><a href="#six">Heading6</a></li> </ul> </div> </div><!--/span--> </div><!--/row--> ///// </div><!--/.container--> <script src="http://code.jquery.com/jquery.js"></script> <script src="js/bootstrap.min.js"></script> <script src="js/offcanvas.js"></script> </body> </html>関連記事の目次
- ブートストラップ3のサンプルレイアウトoffcanvasの設定方法
- Bootstrap3のtabを使って目次、表示の切り替え
- ブートストラップ3のグリッドの挙動をまとめました
- ブートストラップ3のaffixとScrollSpyを使ったサンプルレイアウト
- Bootstrapのフリーのテーマを使ってデザインを簡単にカスタマイズ
- Bootstrap3でリスト、リストグループ、パネルの階層を折りたたみ(collapse)
- Bootstrap3のサンプルOffcanvasのJavaScriptをAngularJSで書き換え
- Bootstrap3でAngularJSを使用 accordion
- Bootstrap3でAngularJSを使用 carousel
- Bootstrap3でAngularJSを使用 collapse
- Bootstrap3でAngularJSを使用 dropdown
- Bootstrap3でAngularJSを使用 datepicker
- Bootstrap3でAngularJSを使用 modal
- Bootstrap3でAngularJSを使用 tooltip、popover
- Bootstrap3でAngularJSを使用 tab
- Bootstrap3でAngularJSを使用 pagination
- Angular2とBootstrap4でAccordion
- Angular2とBootstrap4でCarousel
- Angular2とBootstrap4でドロップダウン
- Angular2とBootstrap4でツールチップ、ポップオーバー
- Angular2とBootstrap4でタブ
- Angular2とBootstrap4でページネーション(ページャー)
- Angular2とBootstrap4でcollapse
- Angular2とBootstrap4でモーダル
- Angular2とBootstrap4でdatepicker
Angular-ui bootstrap
ng-bootstrap(Angular2、Angular4)