JavaScript
JavaScriptでコンテンツ切り替えその32015/11/18
JavaScriptでコンテンツ切り替えその2を改良してみた。
表示切替の基本の仕組みは同じ。
HTML、CSSに変更点はなし。
■表示の切り替えをアニメーション化
animateを使ってアニメーションを実装。
■ボタンの連打を抑制
変数changingで状態を管理することで連打を抑制。
■with文を使ってスクリプトを少し簡略化
$("#cont > div")を省略している。
※要jQuery
【動作確認】
1つ目のコンテンツ
p1p1p1p1p1p1p1
2つ目のコンテンツ
p2p2p2p2p2p2p2p2
3つ目のコンテンツ
p3p3p3p3p3p3p3p3
<div id="cont"> <div> <p>1つ目のコンテンツ</p> <p>p1p1p1p1p1p1p1</p> </div> <div> <p>2つ目のコンテンツ</p> <p>p2p2p2p2p2p2p2p2</p> </div> <div> <p>3つ目のコンテンツ</p> <p>p3p3p3p3p3p3p3p3</p> </div> </div> <br> <input type="button" value="切り替え" id="changeButton" />hide.css hide.css
.hide { display : none; }change.js
$(function(){ $("#changeButton").click( (function(){ var nextCont = 0; var changing = false; with($("#cont > div")){ addClass("hide"); eq(nextCont).removeClass("hide"); return function(){ if(!changing){ changing = true; eq(nextCont).animate( { opacity : 'hide'}, { duration : 1000, easing : 'swing', complete : function(){ nextCont++; if(nextCont >= length) nextCont = 0; eq(nextCont).animate( { opacity : 'show'}, { duration : 1000, easing : 'swing', complete : function(){ changing = false; } } ); } } ); } } } })() ); });