実現したいこと
発生している問題・分からないこと
4枚のslideimg_paraを2秒ごとに写真切り替えするようにしたいのですが、
どうしても1枚目が表示されないエラーが発生しています。
ご教示いただけないでしょうか。
エラーメッセージ
error
14枚のslideimg_paraを2秒ごとに写真切り替えするようにしたいのですが、 2どうしても1枚目が表示されないエラーが発生しています。 3ご教示いただけないでしょうか。
該当のソースコード
html
1<div class="box2"> 2<div class="container_kasane_flarerib delayScroll"> 3<div class="conte2"> 4<div class="conte2-child slider-container-full"> 5 <!-- 1枚目 --> 6 <div class="slideimg_para"> 7 <p><a href="#"><img src="image/top.webp" alt="1枚目"></a></p> 8 </div> 9 <!-- 2枚目 --> 10 <div class="slideimg_para"> 11 <p><a href="#"><img src="image/2.webp" alt="2枚目"></a></p> 12 </div> 13 <!-- 3枚目 --> 14 <div class="slideimg_para"> 15 <p><a href="#"><img src="image/3.webp" alt="3枚目"></a></p> 16 </div> 17 <!-- 4枚目 --> 18 <div class="slideimg_para"> 19 <p><a href="#"><img src="image/4.webp" alt="4枚目"></a></p> 20 </div> 21 </div> 22 </div> 23<div class="conte3"> 24<p class="title_flare delayScroll"><img src="image/5_a.webp" /></p> 25<p class="hira_flare delayScroll"><a href="#"><img src="image/5_b.webp" /></a></p> 26</div> 27 28</div> 29 30<div class="container_kasane_flarerib delayScroll"> 31<div class="conte2"> 32<p class="color_flare delayScroll"><a href="#"><img src="image/6.webp" /></a></p> 33</div> 34 35<p class="point_text6 js-template-ignore-br delayScroll"> 36 おしゃれ見えも叶えてくれる 37 アイテムです。 38</p> 39 40<div class="conte3"> 41<p class="model_flare delayScroll"><a href="#"><img src="image/7.webp" /></a></p> 42</div> 43 44</div> 45 46 47</div> 48
css
1.box2 { 2 width: 100%; 3padding: 15% 0 15% 0; 4} 5.container_kasane_flarerib { 6 position: relative; 7width: 100%; 8} 9.conte2{ 10width: 100%; 11height:auto; 12display:flex; 13justify-content:flex-start; 14 margin: 70px 0 0 0; 15 } 16.conte2-child { 17 width:90%; 18 height:auto; 19} 20 21 22 23/* パラパラここから */ 24.slider-container-full { 25 position: relative; 26 width: 70%; 27 overflow: hidden; 28} 29 30.slideimg_para { 31 position: absolute; 32 pointer-events: none; 33 left: 0; 34 width: 100%; 35 opacity: 0; 36 animation: flip 4s steps(1) infinite !important; 37} 38 39/* 最初の画像だけ高さの基準にする */ 40.slideimg_para:nth-child(1) { 41 position: relative; 42 opacity: 1; 43 animation-delay: 0s !important; 44} 45 46/* 2枚目 */ 47.slideimg_para:nth-child(2) { 48 animation-delay: 1s !important; 49} 50 51 52/* 3枚目 */ 53.slideimg_para:nth-child(3) { 54 animation-delay: 2s !important; 55} 56 57 58/* 4枚目 */ 59.slideimg_para:nth-child(4) { 60 animation-delay: 3s !important; 61} 62 63 64@keyframes flip { 65 0% { opacity: 1; } 66 24.99% { opacity: 1; } 67 68 25% { opacity: 0; } 69 100% { opacity: 0; } 70} 71 72 73.slideimg_para p img{ 74 width: 680px; 75 } 76 77 78.conte3{ 79 width: 100%; 80 height:auto; 81 display:flex;/* 親につける */ 82justify-content:flex-end;/* 水平方向中央揃え */ 83 } 84.title_flare { 85 position: absolute; 86 bottom: 550px; /* 上からの距離 */ 87 margin:auto 0; 88} 89.title_flare img { 90width: 90%; 91 } 92 93.hira_flare { 94 position: absolute; 95 bottom: 270px; /* 上からの距離 */ 96 margin:auto 0; 97} 98.hira_flare img { 99width: 90%; 100 101 } 102 103 104.model_flare { 105position: absolute; 106top: -40px; 107margin:auto 0; 108} 109.model_flare img { 110width: 100%; 111 112 } 113 114.color_flare { 115 position: absolute; 116top: 380px; 117margin:auto 0; 118} 119.color_flare img { 120width: 100%; 121 122} 123 124 125/*=========== 126 スライドイン 127===========*/ 128.fadeUp { 129 animation-name: fadeUpAnime; /* 下で定義するアニメーションを適用 */ 130 animation-duration: 0.5s; /* アニメーションの時間は0.5秒 */ 131 animation-fill-mode: forwards; /* アニメーション終了後、状態を保持 */ 132 opacity: 0; /* 初期状態は非表示(透明) */ 133} 134 135/* fadeUpアニメーションの内容 */ 136@keyframes fadeUpAnime { 137 from { 138 opacity: 0; /* 最初は透明で */ 139 transform: translateY(100px); /* 100px下から表示開始 */ 140 } 141 to { 142 opacity: 1; /* 完全に表示された状態に */ 143 transform: translateY(0); /* 元の位置に移動 */ 144 } 145} 146 147
javascript
1<script> 2// ふわっと下からフェイドイン 3// delayScrollAnime 4// ------------------------- 5// スクロールに応じて、要素の子要素を順番にふわっと表示(フェードイン)させる関数 6function delayScrollAnime() { 7 var time = 0.2; // アニメーションのディレイ間隔(秒) 8 var value = time; // 各要素に適用する現在のディレイ時間 9 10 $('.delayScroll').each(function () { 11 var parent = this; // 親要素(.delayScroll)のDOMを取得 12 var elemPos = $(this).offset().top; // 要素のページ上の位置(上からの距離) 13 var scroll = $(window).scrollTop(); // 現在のスクロール量 14 var windowHeight = $(window).height(); // ウィンドウの高さ 15 var childs = $(this).children(); // .delayScroll の子要素を取得 16 17 // 要素が画面内に入ったかどうかをチェックし、playクラスが付与されていない場合のみ実行 18 if (scroll >= elemPos - windowHeight && !$(parent).hasClass("play")) { 19 $(childs).each(function () { 20 // すでにfadeUpが付与されていない子要素に対してのみ処理 21 if (!$(this).hasClass("fadeUp")) { 22 $(parent).addClass("play"); // 処理中フラグとして"play"を付与 23 $(this).css("animation-delay", value + "s"); // 遅延時間を設定 24 $(this).addClass("fadeUp"); // アニメーションクラスを付与 25 value = value + time; // 次の子要素のディレイ時間を加算 26 27 // 最後の子要素まで処理が終わったらplayフラグを外す 28 var index = $(childs).index(this); 29 if ((childs.length - 1) == index) { 30 $(parent).removeClass("play"); 31 } 32 } 33 }); 34 } else { 35 // 画面外に出たとき、または条件を満たさないときはアニメーションをリセット 36 $(childs).removeClass("fadeUp"); 37 value = time; // ディレイ時間をリセット 38 } 39 }); 40} 41 42// ページが読み込まれた際に delayScrollAnime を実行 43// ------------------------- 44$(window).on('load', function () { 45 delayScrollAnime(); 46}); 47 48// スクロールまたはウィンドウサイズ変更時にも実行 49// ------------------------- 50$(window).on('scroll resize', function () { 51 delayScrollAnime(); 52}); 53</script> 54
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
AI活用等しながら修正したのですが
<変更前>
.slideimg_para:nth-child(1) {
position: relative;
animation-delay: 0s !important;
}
<変更後>
.slideimg_para:nth-child(1) {
position: relative;
opacity:1 !important;
animation-delay: 0s !important;
}
補足
特になし
回答2件
あなたの回答
tips
プレビュー
