Warning: Invalid argument supplied for foreach() in /home/yoisina/css.programming.jp/public_html/wp-content/plugins/amp/includes/sanitizers/class-amp-img-sanitizer.php on line 61

Warning: Invalid argument supplied for foreach() in /home/yoisina/css.programming.jp/public_html/wp-content/plugins/amp/includes/sanitizers/class-amp-img-sanitizer.php on line 61

Warning: Invalid argument supplied for foreach() in /home/yoisina/css.programming.jp/public_html/wp-content/plugins/amp/includes/sanitizers/class-amp-img-sanitizer.php on line 61

Warning: Invalid argument supplied for foreach() in /home/yoisina/css.programming.jp/public_html/wp-content/plugins/amp/includes/sanitizers/class-amp-img-sanitizer.php on line 61

Warning: Invalid argument supplied for foreach() in /home/yoisina/css.programming.jp/public_html/wp-content/plugins/amp/includes/sanitizers/class-amp-img-sanitizer.php on line 61
スライドイン・アウト型スライドショー – css だけで作る スライドショー・フォトギャラリー
css だけで作る スライドショー・フォトギャラリー

スライドイン・アウト型スライドショー

css の animation を使った、写真が右からスライドインし、左にスライドアウトするタイプのスライドショーである。

サンプル

本サンプル表示用HTML


<div id="stage">
    <div id="frame">
      <div id="photo1"><img src="wp-images/1.jpg"></div>
      <div id="photo2"><img src="wp-images/2.jpg"></div>
      <div id="photo3"><img src="wp-images/3.jpg"></div>
      <div id="photo4"><img src="wp-images/4.jpg"></div>
      <div id="photo5"><img src="wp-images/5.jpg"></div>
    </div>
</div>

HTMLの概要説明

・表示用写真(スライド)を全て#frame内に表示する。
 (cssで全ての写真を、初期においては画面の右側に重ねて配置する)

本サンプル表示用CSS


#stage {
	position: relative;
	width: 600px;
	height:338;
	margin: 0 auto;
}
#photo1,#photo2,#photo3,#photo4,#photo5 {
	position: absolute;
	float: left;
	width: 600px;
	height: 338px;
	left:600px;
	-moz-animation: imgtrans 30s infinite;
	-webkit-animation: imgtrans 30s infinite;
	animation: imgtrans 30s infinite;
}
#photo1 {
	-moz-animation-delay: 0s;
	-webkit-animation-delay: 0s;
	animation-delay: 0s;
}
#photo2 {
	-moz-animation-delay: 6s;
	-webkit-animation-delay: 6s;
	animation-delay: 6s;
}
#photo3 {
	-moz-animation-delay: 12s;
	-webkit-animation-delay: 12s;
	animation-delay: 12s;
}
#photo4 {
	-moz-animation-delay: 18s;
	-webkit-animation-delay: 18s;
	animation-delay: 18s;
}
#photo5 {
	-moz-animation-delay: 24s;
	-webkit-animation-delay: 24s;
	animation-delay: 24s;
}
#frame {
	width: 600px;
	height: 338px;
	position: relative;
	overflow: hidden;
}
@-webkit-keyframes imgtrans {
 0% { left:100%; }
 5% { left:0%; }
 20% { left:0%; }
 25% { left:-100%; }
 100% { left:-100%; }
}
@-moz-keyframes imgtrans {
 0% { left:100%; }
 5% { left:0%; }
 20% { left:0%; }
 25% { left:-100%; }
 100% { left:-100%; }
}
@keyframes imgtrans {
 0% { left:100%; }
 5% { left:0%; }
 20% { left:0%; }
 25% { left:-100%; }
 100% { left:-100%; }
}

CSSのポイント説明

・前稿のフェイドインアウト型と違って、配置、animationの設定を全て、写真(img)を格納するdiv(photo1,,,photo5)に設定している。こうしなければいけないという訳ではなく、どちらでも同じ結果になる。
・animationは、トータル30秒、繰り返しを設定。
・各写真は、animation開始時(0%)では画面の右側に位置していて、1.5秒(5%)かけて画面中央に表示される。そのまま20%まで表示され、次いで1.5秒で画面左に移動する。
(各写真は順次6秒ごとにanimateするので、代わりに、次のスライドが右からスライドインする)