カルーセル

カルーセルとは回転木馬(メリーゴーランド)のことで、WEBではサムネイルが列をなして移動していくことを指している。 カルーセルの実装はcarouFredSelプラグインを使って行うことにした。
使い方はJQuery入門を参照。

1.CSS

.thumb-wrapper {
		margin:20px 20px 20px 50px;
		padding:10px 20px;
		background-color:#ddd;
		width:580px;
		overflow:visible;
		position: relative;
}
#thumbNails ul {
		margin:0;
		padding:0;
}
#thumbNails ul li{
		list-style:none;
		display:block;
		float:left;
}
#thumbNails li img {
		margin:5px 5px 1px 5px;
}
#thumbNails a img {
    border-style:none;
}
.carouPrev, .carouNext {
		width: 50px;
		height: 50px;
		display: block;
		position: absolute;
		top: 40px;
		cursor:pointer;
}
.carouPrev {
		left:-50px;
		background:url(./images/prev.png) no-repeat;
		background-position: 0 0;
}
.carouNext{
		right: -50px;
		background:url(./images/next.png) no-repeat;
		background-position: 0 0;
}
.carouPrev:hover, .carouNext:hover {
		background-position: 0 -50px;
}
.carouPrev.disabled , .carouNext.disabled  {
		cursor: default;
		background-position: 0 -100px;
}
.carouPage {
		text-align: center;
}
.carouPage a {
		margin:5px;
		text-decoration:none;
}
.carouPage a.selected {
		font-weight:bold;
		background-color:#00ff7f;
}

2.JavaScript

$(function(){
  var url = 'http://shiba-sub2.sakuraweb.com/jquery/dspmov/picdef.xml';
  var http = new JKL.ParseXML( url );
  var doc = http.parse();
  // 結果XMLから<customer>要素を取得
  nodes = doc['root']['customer'];
  if(nodes.length > 0) {  /* 登録結果が1件以上の場合 */
		var ul = $('#thumbNails ul');
	  for(var i=0; i<nodes.length; i++){
	 	 	var li = $('<li>');
	    var thmb_path = nodes[i]['thmb'];
	    var file_path = nodes[i]['name'];
	    var title_name =  nodes[i]['title'];
	    var ank = $('<a>').attr({href: file_path});
	    var thmb_img = $('<img>').attr({src: thmb_path,
                                    	width:105,
                                    	height:100,
                                    	title:title_name
                                   	});
	    ank.append(thmb_img);
	    li.append(ank);
	    ul.append(li);
		}
		var carouObj = new Object();
		carouObj.auto = false;
		carouObj.circular = false;
		carouObj.infinite = false;
		carouObj.prev = ".carouPrev";
		carouObj.next = ".carouNext";
		carouObj.pagination = ".carouPage";
		$("ul").carouFredSel(carouObj);
	}
});

3.HTML

<div class="thumb-wrapper">
	<div id="thumbNails">
		<ul>
		</ul>
		<div class="carouPrev"></div>
		<div class="carouNext"></div>
		<div class="carouPage"></div>
	</div>
</div>

サンプル