インターネットでいろいろと検索してみたのですが、答えが見つからなかったため、質問させてください。
HTMLとCSSを使用し、下図の文字列とその背景色を左から右にワイプ表示させたいです。
①.背景色(グレー部分(#AAA))を左から右にワイプ表示
②.①表示後、文字列を左から右にワイプ表示
③.②表示後、3秒経過した後背景色と文字列を同時にフェードアウトさせる
までを一連の流れとしたいです。
疑似要素等も使用してみたのですが、浅学のため、背景色が文字の上に重なってしまい、実装できませんでした。
ページ表示の遅延を防ぐため、できればJSは使用したくないです。。。
申し訳ないのですが、ご教授よろしくお願いします。
ソース追記します。opacity:1で現時点でまず文字が表示されないため、フェードアウトまで実装できておりません…。
HTML
1<div class="p-home-mainvisual__text-area"> 2 <div> 3 <span class="f-bg">abcde</span> 4 <ul class="f-text"> 5 <li>a</li> 6 <li>b</li> 7 <li>c</li> 8 <li>d</li> 9 <li>e</li> 10 </ul> 11 </div> 12</div>
css
1 .p-home-mainvisual__text-area{ 2 position: relative; 3 width: 100%!important; 4 text-align: center; 5 color: #FFF; 6 } 7 .f-bg{ 8 content: ""; 9 position: absolute; 10 top: 200px; 11 left: 50%; 12 font-size: 3.5em; 13 color: transparent; 14 width:50%; 15 -webkit-transform: translateX(-50%); 16 transform: translateX(-50%); 17 padding: 0 20px; 18 19 } 20 .f-bg::before{ 21 display: block; 22 content: ""; 23 height: 100%; 24 background: #AAA; 25 position: absolute; 26 top: 0; 27 opacity:0.7; 28 animation: wipe .7s ease-in-out both; 29 animation-delay: 1s; 30 } 31 @keyframes wipe { 32 0% { 33 left:0; 34 right: 100%; 35 } 36 100% { 37 left:0; 38 right:0; 39 } 40 } 41 .f-text{ 42 margin-left:30%; 43 margin-top:16%; 44 } 45 .f-text li{ 46 float: left; 47 animation: wipe-text; 48 opacity:0; 49 font-size:4em; 50 } 51 .f-text > li:nth-child(1){ 52 animation-delay: 2s; 53 } 54 .f-text > li:nth-child(2){ 55 animation-delay: 2.5s; 56 } 57 .f-text > li:nth-child(3){ 58 animation-delay: 3s; 59 } 60 .f-text > li:nth-child(4){ 61 animation-delay: 3.5s; 62 } 63 .f-text > li:nth-child(5){ 64 animation-delay: 4.0s; 65 } 66 67 @keyframes wipe-text{ 68 0% { 69 opacity:0; 70 } 71 100%{ 72 opacity:1; 73 } 74
回答2件
あなたの回答
tips
プレビュー