Bootstrap3のOffcanvasのサンプルのJavaScriptの機能をBootstrap3同梱のものからAngularJSに変更する手順をまとめました。
ここでは、以下のバージョンを使用して動作確認しています。
・Bootstrap:v3.3.7
・AngularJS:v1.6.5
・UI Bootstrap:v2.5.0
(1)ファイルの入手
1)BootstrapのOffcanvas
①ブートストラップの公式サイトから”source”版をダウンロード。
②”docs”→”examples”→”offcanvas”を開く
③index.html、offcanvas.js、offcanvas.cssを適宜配置。
2)AngularJS
angular.min.jsを入手し、適宜配置。
3)UI Bootstrap
ui-bootstrap-tpls-2.5.0.min.jsを入手し、適宜配置。
(2)index.html内のインクルード設定
1)cssファイル
bootstrap.min.css、offcanvas.cssのURLを適宜変更します。
例)
<link href=”../../dist/css/bootstrap.min.css” rel=”stylesheet”>
<link href=”offcanvas.css” rel=”stylesheet”>
↓
<link href=”css/bootstrap.min.css” rel=”stylesheet”>
<link href=”css/offcanvas.css” rel=”stylesheet”>
2)JavaScriptファイル
jquery、bootstrap.min.jsは使用せず、AngularJS、UI-Bootstrap使用します。
例)
<script src=”https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js”></script>
<script>window.jQuery || document.write(‘<script src=”../../assets/js/vendor/jquery.min.js”><\/script>’)</script>
<script src=”../../dist/js/bootstrap.min.js”></script>
<script src=”offcanvas.js”></script>
↓
<script src=”js/angular.min.js”></script>
<script src=”js/ui-bootstrap-tpls-2.5.0.min.js”></script>
<script src=”js/offcanvas.js”></script>
(3)AngularJSスクリプト作成
offcanvas.js内にjqueryのコードが記述されていますが、このコードを消去し、AngularJSのコードで書き換えます。
例)
var MyApp = angular.module('MyApp', ['ui.bootstrap']); MyApp.controller("OffcanvasCtrl", function($scope) { $scope.isCollapsed = true; $scope.tgl = true; });
・var MyApp = angular.module(‘MyApp’, [‘ui.bootstrap’]);
AngularJSのスクリプトでUI Bootstrapを利用するので、モジュールの依存性の指定で’ui.bootstrap’を記述。
・$scope.isCollapsed = true;
以下の(4)3)で使用。
・$scope.tgl = true;
以下の(4)4)で使用。
(4)HTMLファイルの修正
1)AngularJSモジュールを適用
<html lang=”en”>
↓
<html ng-app=”MyApp” lang=”en”>
2)AngularJSのコントローラの記述を追加
<body> <div ng-controller="OffcanvasCtrl"> : : </div><!--/.ng-controller--> </body>
3)折りたたみの機能をBootstrapの記述からAngularJSに変更
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar"> : <div id="navbar" class="collapse navbar-collapse"> ↓ <button type="button" class="navbar-toggle" ng-click="isCollapsed = !isCollapsed"> : <div id="navbar" class="collapse navbar-collapse" uib-collapse="isCollapsed">
4)”Toggle nav”の機能をAngularJSを使って変更
ブラウザのウィンドウサイズが小さくなった場合に左右に画面を移動できる”Toggle nav”の部分は、Bootstrap3のOffcanvasのサンプルではjQueryを使って記述されています。ここでは、AngularJSのng-classを使って書換えています。
<div class="row row-offcanvas row-offcanvas-right"> : <button type="button" class="btn btn-primary btn-xs" data-toggle="offcanvas">Toggle nav</button> ↓ <div ng-class="tgl ? 'row row-offcanvas row-offcanvas-right' : 'row row-offcanvas row-offcanvas-right active'"> <button type="button" class="btn btn-primary btn-xs" ng-click="tgl = !tgl">Toggle nav</button>関連記事の目次
- ブートストラップ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)