差分

ナビゲーションに移動 検索に移動

Knockout.js/styleバインディング

2,561 バイト追加, 2012年4月11日 (水) 08:21
ページの作成:「Knockoutの'''cssバインディング'''とは、パラメーターの値に応じ、関連付けられたDOM要素のstyle属性の個々のプロパティを...」
[[Knockout]]の'''cssバインディング'''とは、パラメーターの値に応じ、関連付けられた[[DOM]]要素のstyle属性の個々のプロパティを追加または削除する可視バインディングのひとつである。

たとえば「負の値のときに文字列を赤くする」などという処理をstyleバインディングを使うことで簡潔明瞭に書ける。なお、変更したいstyle属性のプロパティが複数あるという場合には、CCSクラス単位で追加削除できる[[Knockout/cssバインディング|cssバインディング]]を使うとよい。

== パラメーター ==
基本的な書式は以下のとおりである。
<source lang="html5">
<div data-bind="style: { CSSプロパティ名: 式 }">...</div>
</source>
記述例。
<source lang="html5">
<div data-bind="style: { color: value() < 0 ? 'red' : 'black' }">...</div>
</source>

=== CSSプロパティ名について ===
「font-weight」や「text-decoration」などの一部のCSSプロパティ名は、[[JavaScript]]の変数名の命名規則でハイフンを使えない関係で、「fontWeight」や「textDecoration」などのように[[キャメルケース]]で置き換える必要があるがあることに注意すること。
=== 式について ===
式は[[三項演算子]]が一般的だが、あくまで[[JavaScript]]のコードとして認識されるため三項演算子ではなくてもよい。

なお、カンマ区切りで複数指定もできる。
<source lang="html5">
<div data-bind="style: { CSSプロパティ名: 式, CSSプロパティ名: 式, ... }">...</div>
</source>



== 使用例 ==
<source lang="html5">
<!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>
</source>

== 関連項目 ==
* [[Knockout]]
== 参考文献 ==
<references/>
== 外部リンク ==

{{stub}}
匿名利用者

案内メニュー