ブートストラップ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)