script.aculo.usで鏡面効果をイメージに適用する (script.aculo.us Reflector)
2007年7月23日(月) 09:10
画像イメージに鏡面効果を適用する方法を紹介しているのが、script.aculo.us Reflector。prototype.jsとscriptaculous.jsを利用して非常に短いJavaScriptコードを記述するだけで実現できる。prototype.jsをすでに導入している場合、非常に便利。
Reflectorで鏡面効果
鏡面効果を適用する<img>タグにid=を割り当て、下記のようにJavaScript指定するだけでよい。オプション指定も可能になっている。
<img src="wollzelle.jpg" alt="test" id="sample" />
<script type="text/javascript">
Reflector.reflect('sample');
//Reflector.reflect('sample',{ amount:1/2, opacity:3/4 });
</script>
Reflector JavaScriptコード
HTMLヘッダでprototype.jsとscriptaculous.jsを事前に呼び出しておき、下記のコードで鏡面効果処理を実装する。
<script type="text/javascript">
var Reflector = {
reflect: function(element) {
element = $(element);
options = $H({
amount: 1/3,
opacity: 1/3
}).merge(arguments[1] || {});
var p = element.parentNode, n = element.nextSibling;
var d = 1.0/(element.height*options.amount);
(element.height*options.amount).times( function(line) {
var h = Builder.node('div',{style:'height:1px;overflow:hidden'},
[Builder.node('img',{src:element.src,
style:'margin-top:-'+(element.height-line-1)+'px'
})]);
p.insertBefore(h,n);
$(h).setOpacity((1-d*line)*options.opacity);
});
}
};
</script>簡単に鏡面効果を実装することが出来るので、非常に便利ですね。外部ファイル形式で実装しておけば、簡単に利用することも出来ます。class="reflect"で鏡面効果が適用されるように、コード修正すればさらに便利になるので、試してみてください。
関連する記事
- マウス操作で写真にズームするギャラリーswf(PostcardViewer)
- CSSとCanvasで描写するWeb用のUIフレームワーク(Mocha UI)
- 透明感のあるデザインをJavaScriptで実装する(glassbox.js)
- MP4、FLVなど再生するFlashプレーヤーswf (JW FLV MEDIA PLAYER)
- FlashやFLV、MediaPlayerに対応したスライドショーJavaScript(shadowbox)
- デザインが魅力的なスライドショーJavaScript (Lightview)
- 楽にフォーム入力チェックを実装するJavaScript (JSValidate)
- CSSデザインレイアウトをオンラインで簡単に作成する (YAML)
- ユーザーが再配置可能なWedgetを実装するJavaScript (Prototype Portal Class)
- フォームボタンCSSデザインするテクニック (Rediscovering Button Element)
- 半透明の角まるツールチップを表示するJavaScript (CoolTips)
- JavaScriptでプログレスバーを簡単に実装する (jsProgressBarHandler)
- JavaScriptコード圧縮して盗用から守る (packer)
- iTuneのようにカバーアートを表示するFlash (iTunes Coverflow)
- 画像をサムネイルのサイズで表示するJavaScript (jQuery Thumbs)
- Ajaxでサクサク動くWebファイルマネージャ (Relay)
- アンカータグを利用してスムーススクロールを実装する (df Smooth Scroll)
- MacでもFlashでホイール操作が出来るようにする (SWFMacMouseWheel)
- HTMLなどタグ編集を楽にするエディタ機能JavaScript (jTagEditor)
- 使いやすいYUIライブラリのWYSIWYGエディタ (Rich Text Editor)

