ColorMeShop!Proの商品詳細ページの拡大画像表示について。
この記事はサムネイルにマウスオーバーしたら画像を切り替える方法を使用したメモです。
前にLightboxを使う方法を書いてますがどちらにするかはお好みで。
元エントリーのスクリプトを若干変えただけですが、XHMTL・CSS・Javascriptをまとめて貼っておきます
画像サイズとかは適当に変更すること。
NoImageのURLはアップロード先のURLにしてください。
<h1 id="itemname"><{$product_name}></h1>
<div id="photo">
<p id="mainimg">
<{if $product.img_url != ""}><img src="<{$product.img_url}>" alt="Main Image" id="myImg" />
<{else}>
<img src="noimg_m.jpg" width="520" height="392" alt="No Image" /><{/if}></p>
<!-- 商品サブ画像 -->
<{if $product.ot1_url != ""}>
<ul id="thumb"><{if $product.ot1_url != ""}><li><img src="<{$product.ot1_url}>" width="170" /></li><{/if}>
<{if $product.ot2_url != ""}><li><img src="<{$product.ot2_url}>" width="170" /></li>
<{/if}>
<{if $product.ot3_url != ""}><li><img src="<{$product.ot3_url}>" width="170" /></li>
<{/if}></ul>
<{/if}>
</div>
clearFixの代わりにclear:bothしたエレメント入れてもいいです。
div#photo {}
p#mainimg {
float:left;
width:520px;
padding-right:10px;
margin:0;
}
div#photo ul#thumb {
list-style:none;
margin:0 0 0 530px;
}
div#photo ul#thumb li {
margin-bottom:3px;
}
div#photo ul#thumb li img {
cursor:pointer;
}
div#photo:after {
content:".";
height:0px;
clear:both;
display: block;
visibility:hidden;
}
div#photo { zoom:100%; }
サムネイル=拡大画像なんで置換なし。
smartyタグでデフォルトの画像URLをNoImage画像と分岐させてます。
#itemnameは商品タイトル。サムネイル4枚にしても良い。
<script type="text/javascript">
//<![CDATA[
window.onload =function(){
var myImg = document.getElementById("thumb").getElementsByTagName("img");
var defsrc = "<{if $product.img_url != ""}><{$product.img_url}><{else}>noimg_m.jpg<{/if}>";
var newimg = new Array();
for (var i = 0; i <myImg.length; i++) {
newimg[i] = new Image();
newimg[i].src = myImg[i].src;
myImg[i].onmouseover =function() {
var href = this.src;
document.getElementById('myImg').src=href;
}
}
document.getElementById("itemname").onmouseover =function() {
document.getElementById('myImg').src=defsrc
}
}
//]]>
</script>
javsacriptは上級者モードでHTML内に貼ること。
window.onloadがダブる場合はまとめないとエラーになります