ある要素が表示されるときや消される場合、普通は何の愛想もなくパッと変わるだけですが、トランジション効果を使えば、様々なパターンで少しずつ表示されたり消去されたりします。このパターンは24種用意されており、スタイルのフィルター・プロパティから使用することが出来ます。 もちろん、MSによるCSSの独自拡張で特定のブラウザ用(IE4.0以上)の効果です。
トランジション効果を発生させるには以下のような手順が必要です。
HTML側では、トランジション効果を与えたい要素にCSSを使ってfilter: revealTransを設定します。これは、スクリプトで操作するオブジェクトrevealTransを作成するためです。
スクリプト側では以下のような操作をします。
下のボックスをクリックしてみてください。
以下はこのソースです。
<div id="box" onclick="goTransition()" style="filter: revealTrans; width:100;height:100;cursor:hand; background-color:#AFE;visibility:visible;"> <script type="text/JScript"> function goTransition() { box.filters[0].transition = 12; box.filters[0].duration = 2; box.filters[0].apply(); box.style.visibility = "hidden"; box.filters[0].play(); } </script>
幅100px、高さ100pxのdiv要素をにstyle属性 filter: revealTrans を設定しています。このdiv要素がクリックされると、関数goTransition()が実行されます。
goTransition()では、まず、revealTransのプロパティtransitionとdurationを設定しています。オブジェクトrevealTransにはフィルター・コレクションfiltersを用いてアクセスしています。一般に一つの要素に対して複数のフィルター効果を付けることができるので、フィルター・コレクションfiltersが用意されているようです。ここでは、revealTransは唯一のフィルターなので添え字"0"を付けていますが、以下のような書き方も可能です。
box.filters.revealTrans.transition = 12; 又は box.filters[revealTrans].transition = 12;
プロパティtrasitionの値を12としていますが、これはRandom dissolveという効果のパターン番号です。プロパティdurationを通して持続時間を指定できます。
次にメソッドapply()によって申し込み、visibilityをhiddenに変え、最後にメソッドplay()により効果を実行させています。
この効果を有効、無効にします。
[ bEnabled ] = object.filters.filterName.Enabled
"bEnabled"は Boolean値
トランジションの現在の状態を戻します。(read-only)
[ iStatus ] = object.filters.filterName.status
"iStatus"の値は次のようになる。
object.filters.filterName.apply()
指定したオブジェクトにトランジション効果をapply(申し込み)します。返値は無し。
object.filters.filterName.stop()
トランジション効果の実行中止
トランジション効果の実行
object.filters.filterName.play([ iDuration ])
番号 | 効果名 |
---|---|
0 | Box in. |
1 | Box out. |
2 | Circle in. |
3 | Circle out. |
4 | Wipe up. |
5 | Wipe down. |
6 | Wipe right. |
7 | Wipe left. |
8 | Vertical blinds. |
9 | Horizontal blinds. |
10 | Checkerboard across. |
11 | Checkerboard down. |
12 | Random dissolve. |
13 | Split vertical in. |
14 | Split vertical out. |
15 | Split horizontal in. |
16 | Split horizontal out. |
17 | Strips left down. |
18 | Strips left up. |
19 | Strips right down. |
20 | Strips right up. |
21 | Random bars horizontal. |
22 | Random bars vertical. |
23 | Random. |
フェードインやフェードアウトをさせる。
<ELEMENT STYLE = "filter: blendTrans(sProperties)" ... >
object.style.filter = "blendTrans(sProperties)"