先に投稿した「ブラインド開閉型」では、ブラインド(短冊型矩形)が一方向(左から右)に順次閉じたり開いたりするタイプのものであったが、今回の投稿では、左から右に順次閉じ、次いで、右から左に順次開いていくタイプのものである。このタイプでは、ひとつの animaition を全ての短冊矩形が共有するというわけにはいかず、それぞれが独自の animation を持つことになる。
サンプル





本サンプル表示用HTML
< div id = "stage" > < div id = "frame" > < div id = "photo1" class = "photo" >< img src = "wp-images/1.jpg" ></ div > < div id = "photo2" class = "photo" >< img src = "wp-images/2.jpg" ></ div > < div id = "photo3" class = "photo" >< img src = "wp-images/3.jpg" ></ div > < div id = "photo4" class = "photo" >< img src = "wp-images/4.jpg" ></ div > < div id = "photo5" class = "photo" >< img src = "wp-images/5.jpg" ></ div > </ div > < div id = "rec1" class = "rec" ></ div > < div id = "rec2" class = "rec" ></ div > < div id = "rec3" class = "rec" ></ div > < div id = "rec4" class = "rec" ></ div > < div id = "rec5" class = "rec" ></ div > < div id = "rec6" class = "rec" ></ div > < div id = "rec7" class = "rec" ></ div > < div id = "rec8" class = "rec" ></ div > < div id = "rec9" class = "rec" ></ div > < div id = "rec10" class = "rec" ></ div > </ div > |
HTML概要説明
・HTMLは、前投稿の「ブラインド開閉型」と同じである。
本サンプル表示用CSS
#stage { position : relative ; width : 600px ; height : 338 ; margin : 0 auto ; } .photo { position : absolute ; width : 600px ; height : 338px ; } .photo img { visibility : hidden ; -webkit- animation : imgTrans 30 s infinite ; animation : imgTrans 30 s infinite ; } #photo 1 img { -webkit- animation-delay : 0 s; animation-delay : 0 s; } #photo 2 img { -webkit- animation-delay : 6 s; animation-delay : 6 s; } #photo 3 img { -webkit- animation-delay : 12 s; animation-delay : 12 s; } #photo 4 img{ -webkit- animation-delay : 18 s; animation-delay : 18 s; } #photo 5 img { -webkit- animation-delay : 24 s; animation-delay : 24 s; } #frame { width : 600px ; height : 338px ; position : relative ; overflow : hidden ; } .rec { width : 60px ; height : 338px ; background : #fff ; position : absolute ; top : 0 ; opacity : 0 ; } #rec 1 { left : 0 ; -webkit- animation : sliceaction 1 6 s infinite ; animation : sliceaction 1 6 s infinite ; } #rec 2 { left : 60px ; -webkit- animation : sliceaction 2 6 s infinite ; animation : sliceaction 2 6 s infinite ; } #rec 3 { left : 120px ; -webkit- animation : sliceaction 3 6 s infinite ; animation : sliceaction 3 6 s infinite ; } #rec 4 { left : 180px ; -webkit- animation : sliceaction 4 6 s infinite ; animation : sliceaction 4 6 s infinite ;} #rec 5 { left : 240px ; -webkit- animation : sliceaction 5 6 s infinite ; animation : sliceaction 5 6 s infinite ;} #rec 6 { left : 300px ; -webkit- animation : sliceaction 6 6 s infinite ; animation : sliceaction 6 6 s infinite ;} #rec 7 { left : 360px ; -webkit- animation : sliceaction 7 6 s infinite ; animation : sliceaction 7 6 s infinite ;} #rec 8 { left : 420px ; -webkit- animation : sliceaction 8 6 s infinite ; animation : sliceaction 8 6 s infinite ;} #rec 9 { left : 480px ; -webkit- animation : sliceaction 9 6 s infinite ; animation : sliceaction 9 6 s infinite ;} #rec 10 { left : 540px ; -webkit- animation : sliceaction 10 6 s infinite ; animation : sliceaction 10 6 s infinite ;} @-webkit-keyframes imgTrans { 0% { visibility : visible ;} 20% { visibility : hidden ;} 100% { visibility : hidden ;} } @-webkit-keyframes sliceaction 1 { 0% { opacity : 1 ;} 15% { opacity : 1 ;} 20% { opacity : 0 ;} 80% { opacity : 0 ;} 95% { opacity : 1 ;} 100% { opacity : 1 ;} } @-webkit-keyframes sliceaction 2 { 0% { opacity : 1 ;} 13.33% { opacity : 1 ;} 20% { opacity : 0 ;} 81.67% { opacity : 0 ;} 95% { opacity : 1 ;} 100% { opacity : 1 ;} } @-webkit-keyframes sliceaction 3 { 0% { opacity : 1 ;} 11.67% { opacity : 1 ;} 20% { opacity : 0 ;} 83.33% { opacity : 0 ;} 95% { opacity : 1 ;} 100% { opacity : 1 ;} } @-webkit-keyframes sliceaction 4 { 0% { opacity : 1 ;} 10% { opacity : 1 ;} 20% { opacity : 0 ;} 85% { opacity : 0 ;} 95% { opacity : 1 ;} 100% { opacity : 1 ;} } @-webkit-keyframes sliceaction 5 { 0% { opacity : 1 ;} 8.33% { opacity : 1 ;} 20% { opacity : 0 ;} 86.67% { opacity : 0 ;} 95% { opacity : 1 ;} 100% { opacity : 1 ;} } @-webkit-keyframes sliceaction 6 { 0% { opacity : 1 ;} 6.67% { opacity : 1 ;} 20% { opacity : 0 ;} 88.33% { opacity : 0 ;} 95% { opacity : 1 ;} 100% { opacity : 1 ;} } @-webkit-keyframes sliceaction 7 { 0% { opacity : 1 ;} 5% { opacity : 1 ;} 20% { opacity : 0 ;} 90% { opacity : 0 ;} 95% { opacity : 1 ;} 100% { opacity : 1 ;} } @-webkit-keyframes sliceaction 8 { 0% { opacity : 1 ;} 3.33% { opacity : 1 ;} 20% { opacity : 0 ;} 91.67% { opacity : 0 ;} 95% { opacity : 1 ;} 100% { opacity : 1 ;} } @-webkit-keyframes sliceaction 9 { 0% { opacity : 1 ;} 1.67% { opacity : 1 ;} 20% { opacity : 0 ;} 93.33% { opacity : 0 ;} 95% { opacity : 1 ;} 100% { opacity : 1 ;} } @-webkit-keyframes sliceaction 10 { 0% { opacity : 1 ;} 20% { opacity : 0 ;} 95% { opacity : 0 ;} 97% { opacity : 1 ;} 100% { opacity : 1 ;} } @keyframes imgTrans { 0% { visibility : visible ;} 20% { visibility : hidden ;} 100% { visibility : hidden ;} } @keyframes sliceaction 1 { 0% { opacity : 1 ;} 15% { opacity : 1 ;} 20% { opacity : 0 ;} 80% { opacity : 0 ;} 95% { opacity : 1 ;} 100% { opacity : 1 ;} } @keyframes sliceaction 2 { 0% { opacity : 1 ;} 13.33% { opacity : 1 ;} 20% { opacity : 0 ;} 81.67% { opacity : 0 ;} 95% { opacity : 1 ;} 100% { opacity : 1 ;} } @keyframes sliceaction 3 { 0% { opacity : 1 ;} 11.67% { opacity : 1 ;} 20% { opacity : 0 ;} 83.33% { opacity : 0 ;} 95% { opacity : 1 ;} 100% { opacity : 1 ;} } @keyframes sliceaction 4 { 0% { opacity : 1 ;} 10% { opacity : 1 ;} 20% { opacity : 0 ;} 85% { opacity : 0 ;} 95% { opacity : 1 ;} 100% { opacity : 1 ;} } @keyframes sliceaction 5 { 0% { opacity : 1 ;} 8.33% { opacity : 1 ;} 20% { opacity : 0 ;} 86.67% { opacity : 0 ;} 95% { opacity : 1 ;} 100% { opacity : 1 ;} } @keyframes sliceaction 6 { 0% { opacity : 1 ;} 6.67% { opacity : 1 ;} 20% { opacity : 0 ;} 88.33% { opacity : 0 ;} 95% { opacity : 1 ;} 100% { opacity : 1 ;} } @keyframes sliceaction 7 { 0% { opacity : 1 ;} 5% { opacity : 1 ;} 20% { opacity : 0 ;} 90% { opacity : 0 ;} 95% { opacity : 1 ;} 100% { opacity : 1 ;} } @keyframes sliceaction 8 { 0% { opacity : 1 ;} 3.33% { opacity : 1 ;} 20% { opacity : 0 ;} 91.67% { opacity : 0 ;} 95% { opacity : 1 ;} 100% { opacity : 1 ;} } @keyframes sliceaction 9 { 0% { opacity : 1 ;} 1.67% { opacity : 1 ;} 20% { opacity : 0 ;} 93.33% { opacity : 0 ;} 95% { opacity : 1 ;} 100% { opacity : 1 ;} } @keyframes sliceaction 10 { 0% { opacity : 1 ;} 20% { opacity : 0 ;} 95% { opacity : 0 ;} 97% { opacity : 1 ;} 100% { opacity : 1 ;} } |
CSSのポイント説明
・見た目は非常に長いものになっているが、コピペで記述すればそれほどの手間ではなく、PCに負担をかけるほどの負荷にはならないと思う。
・一番目の矩形が最初に閉じて(非透明になり)最後に透明になるような設定になるので、各矩形(#rec1,#rec2,,,)それぞれに animation の記述が必要になる。
・スライドの切替が6秒毎で、これが矩形のanimation単位時間(100%)となっており、開・閉それぞれに1秒ずつかけている。したがって、各矩形のanimationの時間差が0.1秒(1.67%)となるように設定している。