「Knockout.js/styleバインディング」の版間の差分
ナビゲーションに移動
検索に移動
imported>Administrator |
imported>Administrator (→使用例) |
||
(同じ利用者による、間の4版が非表示) | |||
1行目: | 1行目: | ||
− | [[Knockout]]の'''cssバインディング'''とは、パラメーターの値に応じ、関連付けられた[[DOM]]要素のstyle属性の個々のプロパティを追加または削除する[[Knockout/可視バインディング|可視バインディング]]のひとつである。 | + | [[Knockout.js]]の'''cssバインディング'''とは、パラメーターの値に応じ、関連付けられた[[DOM]]要素のstyle属性の個々のプロパティを追加または削除する[[Knockout.js/可視バインディング|可視バインディング]]のひとつである。 |
− | たとえば「負の値のときに文字列を赤くする」などという処理をstyleバインディングを使うことで簡潔明瞭に書ける。なお、変更したいstyle属性のプロパティが複数あるという場合には、CCSクラス単位で追加削除できる[[Knockout/cssバインディング|cssバインディング]]を使うとよい。 | + | たとえば「負の値のときに文字列を赤くする」などという処理をstyleバインディングを使うことで簡潔明瞭に書ける。なお、変更したいstyle属性のプロパティが複数あるという場合には、CCSクラス単位で追加削除できる[[Knockout.js/cssバインディング|cssバインディング]]を使うとよい。 |
== パラメーター == | == パラメーター == | ||
− | + | styleバインディングの基本的な書式は以下のとおりである。 | |
<source lang="html5"> | <source lang="html5"> | ||
<div data-bind="style: { CSSプロパティ名: 式 }">...</div> | <div data-bind="style: { CSSプロパティ名: 式 }">...</div> | ||
</source> | </source> | ||
− | + | ||
+ | styleバインディングはカンマ区切りで複数指定もできる。 | ||
<source lang="html5"> | <source lang="html5"> | ||
<div data-bind="style: { CSSプロパティ名: 式, CSSプロパティ名: 式, ... }">...</div> | <div data-bind="style: { CSSプロパティ名: 式, CSSプロパティ名: 式, ... }">...</div> | ||
</source> | </source> | ||
− | + | styleバインディングの記述例。 | |
<source lang="html5"> | <source lang="html5"> | ||
<div data-bind="style: { color: value() < 0 ? 'red' : 'black' }">...</div> | <div data-bind="style: { color: value() < 0 ? 'red' : 'black' }">...</div> | ||
20行目: | 21行目: | ||
=== CSSプロパティ名について === | === CSSプロパティ名について === | ||
「font-weight」や「text-decoration」などの一部のCSSプロパティ名は、[[JavaScript]]の変数名の命名規則でハイフンを使えない関係で、「fontWeight」や「textDecoration」などのように[[キャメルケース]]で置き換える必要があるがあることに注意すること。 | 「font-weight」や「text-decoration」などの一部のCSSプロパティ名は、[[JavaScript]]の変数名の命名規則でハイフンを使えない関係で、「fontWeight」や「textDecoration」などのように[[キャメルケース]]で置き換える必要があるがあることに注意すること。 | ||
+ | |||
=== 式について === | === 式について === | ||
式は[[三項演算子]]が一般的だが、あくまで[[JavaScript]]のコードとして認識されるため三項演算子ではなくてもよい。 | 式は[[三項演算子]]が一般的だが、あくまで[[JavaScript]]のコードとして認識されるため三項演算子ではなくてもよい。 | ||
34行目: | 36行目: | ||
<script type="text/javascript"> | <script type="text/javascript"> | ||
jQuery(function() { | jQuery(function() { | ||
− | // | + | // ビューモデル |
var AppViewModel = function() { | var AppViewModel = function() { | ||
this.valueA = ko.observable(90); | this.valueA = ko.observable(90); | ||
54行目: | 56行目: | ||
== 関連項目 == | == 関連項目 == | ||
− | * [[Knockout]] | + | * [[Knockout.js]] |
+ | ** [[Knockout.js/可視バインディング|可視バインディング]] | ||
+ | |||
== 参考文献 == | == 参考文献 == | ||
<references/> | <references/> |
2012年4月20日 (金) 08:11時点における最新版
Knockout.jsのcssバインディングとは、パラメーターの値に応じ、関連付けられたDOM要素のstyle属性の個々のプロパティを追加または削除する可視バインディングのひとつである。
たとえば「負の値のときに文字列を赤くする」などという処理をstyleバインディングを使うことで簡潔明瞭に書ける。なお、変更したいstyle属性のプロパティが複数あるという場合には、CCSクラス単位で追加削除できるcssバインディングを使うとよい。
パラメーター[編集 | ソースを編集]
styleバインディングの基本的な書式は以下のとおりである。
<div data-bind="style: { CSSプロパティ名: 式 }">...</div>
styleバインディングはカンマ区切りで複数指定もできる。
<div data-bind="style: { CSSプロパティ名: 式, CSSプロパティ名: 式, ... }">...</div>
styleバインディングの記述例。
<div data-bind="style: { color: value() < 0 ? 'red' : 'black' }">...</div>
CSSプロパティ名について[編集 | ソースを編集]
「font-weight」や「text-decoration」などの一部のCSSプロパティ名は、JavaScriptの変数名の命名規則でハイフンを使えない関係で、「fontWeight」や「textDecoration」などのようにキャメルケースで置き換える必要があるがあることに注意すること。
式について[編集 | ソースを編集]
式は三項演算子が一般的だが、あくまでJavaScriptのコードとして認識されるため三項演算子ではなくてもよい。
使用例[編集 | ソースを編集]
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>knockout.js - html bindding sample 1</title>
<script type="text/javascript" src="jquery-1.5.1.min.js"></script>
<script type="text/javascript" src="knockout-2.0.0.js"></script>
<script type="text/javascript">
jQuery(function() {
// ビューモデル
var AppViewModel = function() {
this.valueA = ko.observable(90);
this.valueB = ko.observable(20);
}
// バインディング適用
ko.applyBindings(new AppViewModel());
});
</script>
</head>
<body>
<p data-bind="style: { color: valueA() < 30 ? 'red' : 'black' }">Aさん</p>
<p data-bind="style: { color: valueB() < 30 ? 'red' : 'black' }">Bさん</p>
</body>
</html>