$(function()
{
//----------------------------------------------
// 変数宣言
//----------------------------------------------
var viewTop = 20;
var imgPath = './img/';
//----------------------------------------------
// コントローラーの設定
//----------------------------------------------
$("#clickImgArea img").click(imgOn);
$("#viewMat, #lImg").click(imgOff);
//----------------------------------------------
// 初期処理
//----------------------------------------------
//----------------------------------------------
// メソッド
//----------------------------------------------
/*
*
* マウスオーバー時の画像表示用メソッド
*
*/
function imgOn()
{
//画像を切り替えたいんです。先に
var myImgSrc = $(this).attr('src');
imgNum = myImgSrc.match(/[0-9]/ig);
imgType = myImgSrc.match(/(\.jpg|\.gif|\.png)/ig);
$("#lImg img").attr('src',imgPath+imgNum+'_main'+imgType);
$("#viewMat").css(
{
"width":$(window).width()+'px',
"height":$(window).height()+'px'
}
)
.show();
$("#lImg").css(
{
'position':'absolute',
'top':$(window).scrollTop()+viewTop+'px',
'left':Math.floor(($(window).width() - 550) / 2)+'px'
}
)
.fadeIn(1500);
}
function imgOff()
{
$("#lImg").fadeOut(1000,function()
{
$("#viewMat").fadeOut(500);
}
);
}
/*
* $(window).width() 実行段階のウインドウサイズ
* $(window).scrollTop() 実行段階のウインドウの上端の位置
*
*
*
*
*/
});
/*
* 処理の詳細とメモ
*
* ■処理の順番と解説
* まずはhtml側で、拡大画像を表示させる領域と、暗幕用の要素を追加しておき、displey:noneで隠しておきます。
* で、画像(サムネイル的な)にclickイベントを、拡大画像、暗幕要素にもclick要素を付与させます。
*
* 拡大画像表示処理内容
* ※今回、ちょっと時間が無かったので
* ● 拡大画像のアップ場所(ディレクトリ)は固定であるものとしています。
* ● 画像名も固定で
* サムネイルは:[0-9][拡張子]
* 拡大画像は :[0-9]_main[拡張子]
* としています。
* 1:クリックされた画像のsrcを取得します。
* 2:srcの中から、数値を取り出します。
* 3:srcの中から、拡張子を取り出します。
* 4:拡大画像表示部分のimgのsrcに [固定画像パス][クリックされた画像数値]_main[取得した拡張子]とし、画像の差し替えを行います。
* 5:暗幕要素の大きさを、現在のウインドウサイズに合わせます。
* $(window).width()は、現在のウインドウサイズ(幅)
* $(window).height()は、現在のウインドウサイズ(高)
* なので、画面いっぱいに広がる事になります。
* 6:まず、暗幕要素を表示させます。
* 7:拡大画像のpositionをabsoluteとし、画面左上から~とします。
* 8:上からの表示位置を、画面最上部から+20とします。
* $(window).scrollTop()で現在の画面の最上部を取得する事ができます。
* 9:左からの表示位置を、画面中央に寄せます。
* 画面中央を取得するには
* [(現在の横サイズ-画像横サイズ) / 2]の計算が必要になります。
* $(window).width()で現在の画面横幅が取得できます。
* Math.floorで小数点以下を切り捨てます。
* 10:fadeIn(1500)で1.5秒かかって画像表示をさせます。
*
* 拡大画像非表示処理内容
* 拡大画像と暗幕要素をクリックしたときに実行されます。
* 1:まず、拡大画像を1秒かかってフェードアウトさせます。
* 2:拡大画像のフェードアウトが完了したら、暗幕要素を0.5秒かかってフェードアウトさせます。
*
*
*/
© Company 2012