Reflector(鏡面効果)を使う。(2)

[script.aculo.us Reflector]
http://mir.aculo.us/2006/4/27/like-reflections-try-the-reflector
(サンプル)http://mir.aculo.us/stuff/reflector/reflector.html
prototype.jsとscript.aculo.usのコード(scriptaculous.js)を使用して、
以下のコードにより、画像に鏡面効果を与えるスクリプトです。

今回はオプション引数について解析します。
オプション引数を指定する場合、スクリプト実行時(オブジェクト生成時)
以下のように記述します。
Reflector.reflect('[imgタグに付与したID]',{ amount:[数値], opacity:[数値] });
引数に関してはどちらか片方のみの指定でもOKです。
配列内の順序も問いません。

◆amount
元画面に対し、どのくらいの領域に鏡面効果を表示するか
数値を指定します。
ソースコードを見てわかるように、デフォルトは1/3です。
数値は小数でも分数でもOKです。
1より大きな数値を指定しても、あふれた部分に関しては
鏡面効果とはなりません(当たり前ですが。)
端の画像が引き伸ばされた状態となります。

◆opacity
鏡面画像の透明度を設定します(0~100の間で設定します)。
ソースコードを見てわかるように、デフォルトは1/3です。
数値は小数でも分数でもOKです。

◆簡単なソース解説
本当に簡単ですが。
script.aculo.usライブラリのBuilderオブジェクト
を使用し、amountで指定された割合分
imgの底辺から1pxずつ反転画像をコピー表示しています。(builder.js参照)
そして、Effect.Opacityオブジェクトにopacityの値を設定し
生成した画像部分の透明度を変更しています。(effects.js参照)

【サンプル】
鏡面効果sample

amount:1,opacity:100と設定すると、
また違った画像に見えて、おもしろいですね。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください