ダウンロード サンプルファイル (2.8 MB)
伸縮するテキストエリアを作成したい - Angular Elastic
Angular Elasticを利用することで、入力した行数に応じて高さが変化するテキストエリアを実装できます。スマホなどのタッチデバイスでは、テキストエリアのスクロール操作はまどろっこしく感じるものですが、テキストエリアを伸縮させることでそもそもスクロールバーの操作が不要になります。
Angular Elasticは、Bowerを利用することで、以下のコマンドでインストールできます。
> bower install angular-elastic
では、具体的な実装例を見ていきます。
<!--(1)Angular Elasticをインポート--> <script src="bower_components/angular/angular.min.js"></script> <script src="bower_components/angular-elastic/elastic.js"></script> <script src="scripts/elastic.js"></script> ...中略... <form> <!--(3)テキストエリアの伸縮を有効化--> <textarea msd-elastic ng-model="memo" rows="5" cols="80"></textarea> </form>
// (2)monospaced.elasticモジュールへの依存関係を宣言
angular.module('myApp', ['monospaced.elastic'])
.controller('MyController', ['$scope', function($scope) {
}]);
利用方法はあまり特筆すべき点はありません。ライブラリをインポートし(1)、依存関係を設定することで(2)、Angular Elasticが有効になりますので、あとは目的のテキストエリアに対して、msd-elastic属性を付与するだけです(3)。
なお、msd-elastic属性に「msd-elastic="\n"」のように値を与えることで、テキストエリアの下部に常に一行空くようにテキストエリアが伸縮します。同様に「\n\n」とすれば複数行空けることも可能です。
スライダーを実装したい - Angular Slider
スライダーは、ある特定範囲の連続した数値を指定するのに便利なUIです。Angular Sliderを利用することで、基本的なスライダーから2値の範囲を表す範囲スライダーまでを簡単に作成できます。
Angular Sliderは、Bowerを利用することで、以下のコマンドでインストールできます。
> bower install angular-slider
では、具体的な実装コードを見ていきます。
<!--(1)Angular SliderのJavaScriptコードとスタイルシートをインポート--> <link rel="stylesheet" href="bower_components/angular-slider/slider.css" /> <script src="bower_components/angular/angular.min.js"></script> <script src="bower_components/angular-slider/slider.js"></script> <script src="scripts/slider.js"></script> ...中略... <form> <!--(3)スライダーを配置--> <slider floor="0" ceiling="100" step="2" ng-model="current"> </slider> </form>
// (2)ui.sliderモジュールへの依存関係を宣言
angular.module('myApp', ['ui.slider'])
.controller('MyController', function($scope) {
$scope.current = 20;
});
Angular Sliderの動作にはJavaScriptライブラリ(slider.js)だけでなく、スタイルシート(slider.css)のインポートも必要です(1)。あとは、ui.sliderモジュールへの依存関係を宣言した上で(2)、<slider>要素でスライダーを配置します(3)。
<slider>要素で利用可能な属性には、以下のようなものがあります
| 属性 | 概要 | デフォルト値 |
|---|---|---|
| ng-model | スライダーの値を格納するための変数 | (必須) |
| floor | スライダーの最小値 | (必須) |
| ceiling | スライダーの最大値 | (必須) |
| step | スライダー値の増減値 | 1 |
| precision | 小数点以下の桁数 | 0 |
範囲スライダーを設置する場合には、ng-model属性の代わりに、ng-model-low(下限)/ng-model-high(上限)属性で、上限下限の値を管理します。以下の例では、範囲の下限上限は、変数lower/higherに反映されます。
<slider floor="0" ceiling="100" step="2" ng-model-low="lower" ng-model-high="higher"></slider>
この記事は参考になりましたか?
- AngularJSアプリ開発を支援する便利モジュール連載記事一覧
- この記事の著者
-
山田 祥寛(ヤマダ ヨシヒロ)
静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるLaravel実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
-
WINGSプロジェクト(ウイングスプロジェクト)
<WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。 2026年時点での登録メンバは約50名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書、記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア
