初めてのJavaScript第二版 13章の例題をじっくりやってみる。 (後半)
昨日の続き。
メソッドの追加
objSetOpacity(value)
objGetOpacity()
を追加してみる。
function changeOpacity() { // div1 var currentOpacity = parseFloat(theobjs["div1"].objGetOpacity()); currentOpacity-=0.1; theobjs["div1"].objSetOpacity(currentOpacity); // div2 currentOpacity = parseFloat(theobjs["div2"].objGetOpacity()); currentOpacity+=0.1; theobjs["div2"].objSetOpacity(currentOpacity); }
動かす
全然動かない。
仕方ないので本書の通りにやることにする。
変更は以下の通り。
//before function DivObj(obj){ this.obj = obj; this.objGetOpacity = getOpacity; this.objSetOpacity = setOpacity; }; //after function DivObj(obj){ this.obj = obj; this.objGetOpacity = getOpacity; if(obj.style.filter) this.objSetOpacity = alphaOpacity; else this.objSetOpacity = cssOpacity; }
これも、変更。
//before function setOpacity(value){ if(this.obj.style.filter){ var opacity = value *100; value.style.filter = "alpha(opacity:" + opacity + ")"; }else{ value.style.opacity = value; } }; //after function alphaOpacity(value){ var opacity = value * 100; this.obj.stlye.filter = "alfpha(opacity:" + opacity + ")"; } function cssOpacity(value){ this.obj.style.opacity = value; }
これで動いた。
ソースは殆どオフィシャルと同一になったので、そちらを参照のこと。
→http://www.marlin-arms.com/support/ljs2/index13.php
の例13-4
今日はここまで。
最初の切り口でもいけそうな気がしたのだが…。後で考えてみる。
体調が悪いため今日は早寝。