「Knockout.js/styleバインディング」の版間の差分

imported>Administrator
imported>Administrator
 
(同じ利用者による、間の5版が非表示)
1行目: 1行目:
[[Knockout]]の'''cssバインディング'''とは、パラメーターの値に応じ、関連付けられた[[DOM]]要素のstyle属性の個々のプロパティを追加または削除する可視バインディングのひとつである。
[[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/>