JQueryで自動スライドできるJavaScriptです。
3秒間放置で写真がスライドします。
ボタンをクリックすることでスライドさせることも可能です。
↓以下が実際のソースサンプルです。
▼JavaScript
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script> <script> $(function(){ //ページングの設定 $("#slide li").each(function(){ $("#paging").append($("<li></li>").attr("data-img",$("img",this).attr("src"))); }); $("#paging li:first-child").addClass("active"); //自動スライドの実行 var timerId = setInterval(function(){ $("#nav .next").click(); },1500); //自動スライドの制御 $("#slideGalley").hover(function(){ $("#nav").show(); clearInterval(timerId); },function(){ $("#nav").hide() timerId = setInterval(function(){ $("#nav .next").click(); },1500); }); //右矢印ボタンが押された際の挙動 $("#nav .next").click(function(){ $("#slide:not(:animated)").animate({ "margin-left" : -1*$("#slide li").width() },function(){ $("#slide").css("margin-left","0").append($("#slide li:first-child")); $("#paging li.active").removeClass("active"); $("#paging li[data-img='"+$("#slide li:first-child img").attr ("src")+"']").addClass("active") }); }); //左矢印ボタンが押された際の挙動 $("#nav .prev").click(function(){ $("#slide:not(:animated)") .css("margin-left",-1*$("#slide li").width()) .prepend($("#slide li:last-child")) .animate({ "margin-left" : 0 },function(){ $("#paging li.active").removeClass("active"); $("#paging li[data-img='"+$("#slide li:first-child img").attr ("src")+"']").addClass("active") }); }); }); </script>
▼CSS
test@charset "utf-8"; /* Baselayout Style */ ul#menu{ width:800px; margin:0; padding:0; } *{ margin:0px; padding:0px; list-style-type:none; } #container{ margin:20px auto; width:800px; } ul.sub{ display:none; } ul.menu:after { height:0; visibility:hidden; display:block; clear:both; } #container{ width:800px; margin:0px auto; } #slideGalley{ width:800px; position: relative; overflow:hidden; } #slide{ width:2400px; } #slide li{ float:left; } #paging{ text-align: center; position: absolute; width:100%; bottom:10px; } #paging li{ display: inline-block; *display: inline; *zoom:1; width:20px; height:20px; background: url(./image/page.png); } #paging li.active{ background: url(./image/page_active.png); } #nav{ display: none; } #nav .prev{ position: absolute; left:10px; top:50%; margin-top:-50px; } #nav .next{ position: absolute; right:10px; top:50%; margin-top:-50px; }
▼HTML
<div id="container"> <div id="slideGalley"> <ul id="slide"> <li><a href="/image/a1.jpg"><img src="image/a1.jpg" width="800" /></a></li> <li><a href="/image/a2.jpg"><img src="image/a2.jpg" width="800" /></a></li> <li><a href="/image/a3.jpg"><img src="image/a3.jpg" width="800" /></a></li> </ul> <div id="nav"> <img src="./image/nav_prev.png" class="prev" /> <img src="./image/nav_next.png" class="next" /> </div> <ul id="paging"> </ul> </div> </div>