以下のようなデザインの商品紹介ページを運営していましたが、
頻繁に商品の差し替え・追加・削除があるため、
そのたびに連番画像の並べ替えをするのがとても大変でした。
そこで、jQuery を使用して
左上から順番に、連番画像を自動的に表示させるようにしてみました。
(1) リストでコーディングする
<ul id="item"> <li> <div class="icon"><p class="no"></p></div> <div class="image"><a href="#"><img src="images/cushion.jpg" alt="TAMクッション(手編み)" width="168" height="168"></a></div> <div class="spec"><p><a href="#">TAMクッション(手編み)</a><br>¥30,000(税込)</p></div> </li> <li> <div class="icon"><p class="no"></p></div> <div class="image"><a href="#"><img src="images/cap.jpg" alt="TAM帽(手編み)" width="168" height="168"></a></div> <div class="spec"><p><a href="#">TAM帽(手編み)</a><br>¥25,000(税込)</p></div> </li> </ul>
※元々は、連番画像を <p class=”no”></p> 内に直接書いていました。
(2) jQueryのファイル* へのリンクと、以下のスクリプトを追加
■HEAD内
<script type="text/javascript" src="js/jquery.js"></script> <script type="text/javascript"> $(function(){ $('ul#item li').each(function(i){ $(this).attr('id','no' + (i+1)); }); }); </script>
これで、「#item」 リストの 「li」 タグに、
「#no1」 からはじまる id を自動的に振っていってくれます。
↓↓↓
<ul id="item"> <li id="no1"> <div class="icon"><p class="no"></p></div> <div class="image"><a href="#"><img src="images/cushion.jpg" alt="TAMクッション(手編み)" width="168" height="168"></a></div> <div class="spec"><p><a href="#">TAMクッション(手編み)</a><br>¥30,000(税込)</p></div> </li> <li id="no2"> <div class="icon"><p class="no"></p></div> <div class="image"><a href="#"><img src="images/cap.jpg" alt="TAM帽(手編み)" width="168" height="168"></a></div> <div class="spec"><p><a href="#">TAM帽(手編み)</a><br>¥25,000(税込)</p></div> </li> </ul>
このままでは見た目が何も変わらないため、
自動的に振られた id を CSS で調整します。
(3) 表示させる連番画像を CSS で設定。
#item li p.no { width: 20px; height: 20px; } #item li#no1 p.no { background: url(../images/icon_no1.gif) no-repeat; } #item li#no2 p.no { background: url(../images/icon_no2.gif) no-repeat; }
これで、HTMLには何も書かなくても
上から順に自動的に連番画像を表示してくれます。
商品点数が多く、更新頻度の高いページにはとっても便利です。
※jQuery のファイルはこちらからダウンロードください。
http://jquery.com/