「Knockout.js/cssバインディング」の版間の差分
imported>Administrator |
imported>Administrator |
||
| (同じ利用者による、間の6版が非表示) | |||
| 1行目: | 1行目: | ||
[[Knockout]]の'''cssバインディング'''とは、パラメーターの値に応じ、関連付けられた[[DOM]] | [[Knockout.js]]の'''cssバインディング'''とは、パラメーターの値に応じ、関連付けられた[[DOM]]要素のCSSクラスを追加または削除する[[Knockout.js/可視バインディング|可視バインディング]]のひとつである。 | ||
なお、CSSクラス単位ではなく、style属性の個別の値のみを書き換えたい場合には[[Knockout.js/styleバインディング|styleバインディング]]を使うとよい。 | |||
== パラメーター == | == パラメーター == | ||
cssバインディングの基本的な書式は以下のとおりである。 | |||
<source lang="html5"> | |||
<div data-bind="css: { CSSクラス名: 値または式 }">...</div> | |||
</source> | |||
cssバインディングはカンマ区切りで複数指定もできる。 | |||
<source lang="html5"> | |||
<div data-bind="css: { CSSクラス名: 値または式, CSSクラス名: 値または式, ... }">...</div> | |||
</source> | |||
値または式の結果が、trueならばDOM要素(HTMLタグ)のclass属性にCSSクラスが追加され、falseならばDOM要素(HTMLタグ)のclass属性からCSSクラスが削除される。 | |||
なお、式を指定する場合の「式」とは[[JavaScript]]そのものなので関数なども使いたい放題である。 | |||
== 使用例 == | == 使用例 == | ||
<source lang="html5"> | <source lang="html5"> | ||
<!DOCTYPE html> | <!DOCTYPE html> | ||
| 18行目: | 27行目: | ||
<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); | ||
| 42行目: | 51行目: | ||
== 関連項目 == | == 関連項目 == | ||
* [[Knockout]] | * [[Knockout.js]] | ||
** [[Knockout.js/可視バインディング|可視バインディング]] | |||
== 参考文献 == | == 参考文献 == | ||
<references/> | <references/> | ||
2012年4月20日 (金) 08:11時点における最新版
Knockout.jsのcssバインディングとは、パラメーターの値に応じ、関連付けられたDOM要素のCSSクラスを追加または削除する可視バインディングのひとつである。
なお、CSSクラス単位ではなく、style属性の個別の値のみを書き換えたい場合にはstyleバインディングを使うとよい。
パラメーター[編集 | ソースを編集]
cssバインディングの基本的な書式は以下のとおりである。
<div data-bind="css: { CSSクラス名: 値または式 }">...</div>
cssバインディングはカンマ区切りで複数指定もできる。
<div data-bind="css: { CSSクラス名: 値または式, CSSクラス名: 値または式, ... }">...</div>
値または式の結果が、trueならばDOM要素(HTMLタグ)のclass属性にCSSクラスが追加され、falseならばDOM要素(HTMLタグ)のclass属性からCSSクラスが削除される。 なお、式を指定する場合の「式」とは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>
<style>
.AAA { color: #0000FF; background-color: #FFFF00; }
.BBB { color: #FF0000; background-color: #00FFFF; }
</style>
</head>
<body>
<p data-bind="css: { AAA: valueA() > 70, BBB: valueA() < 30 }">Aさん</p>
<p data-bind="css: { AAA: valueB() > 70, BBB: valueB() < 30 }">Bさん</p>
</body>
</html>