使用できるトリックの1つは、次のとおりです。
- すべての元の画像サイズを各画像
data
属性内に保存します
- 内部画像をH:100%およびW:100%に設定して、コンテナをW/Hでアニメーション化します。
HTML:
<div id="projphotos">
<div id="mainphoto"><img src="" /></div><!--MAINPHOTO-->
<div id="projthumbs">
<img src="images/image_1.jpg" />
<img src="images/image_2.jpg" />
<img src="images/image_3.jpg" />
</div><!--PROJTHUMBS-->
</div>
CSS:
#mainphoto{ /* roXon */
border-radius: 5px 5px 5px 5px;
box-shadow: 0 0 5px #888888;
padding: 10px;
display:inline-block;
*dispaly:inline;
zoom:1;
width:0;
height:0;
}
#mainphoto img{
position:relative;
margin:0 auto;
vertical-align:middle;
width:100%;
height:100%;
}
#projphotos img {
/* removed properties */
background-image: url("tmpimages/billie_holiday.png");
}
jQuery(元の画像サイズを保存/使用してメイン画像の親をアニメーション化する:)
$(window).load(function(){
var imgs = $('#projthumbs img');
$.each(imgs, function(i, el){
$('<img>', {"src": this.src}).load(function(){
$(el).data({'h': this.height, 'w': this.width});
if(i===0){
$(el).click();
}
});
});
$('#projthumbs img').click(function(){
var imgsrc = this.src;
var orgSize = { h: $(this).data('h'), w: $(this).data('w') };
$('#mainphoto img').stop().fadeTo(400,0,function(){
$(this).attr('src', imgsrc).fadeTo(400,1);
$('#mainphoto').animate({height: orgSize.h, width: orgSize.w },400);
});
});
$('#projthumbs img').eq(0).click();
});