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;
}
}
);
}
}
);
}
}
}
})()
);
});