前提・実現したいこと
JjQueryで画像のクロスフェードを作っていますが、正常に動くようにしたい。
リロードあるいは、別ページからHOMEに戻っても画像のちらつきなく。
詳しい方ご指導いただければ幸いです。
発生している問題・エラーメッセージ
JjQueryで画像のクロスフェードを作っていますが、フェードは問題ないのですが、ページをリロードあるいは、別ページからHOMEに戻る際、一瞬画像が順番に表示されて(ちらつき?)、フェードが始まるという感じになってしまいます。
おそらくバグ?かと思いますが、原因がわからず困っています。
該当のソースコード
●HTML
<script src="<?php the_path(); ?>js/jquery-3.4.1.min.js" defer=”defer”></script> <script src="js/basic.js" type="text/Javascript" defer=”defer”></script> <div class="main_img"> <ul id="imageSlide"> <li class="text"> <img src="<?php the_path(); ?>images/main_img_1-2.jpg" alt=""> <p>テキストテキスト</p> </li> <li class="text"> <img src="<?php the_path(); ?>images/main_img_1-3.jpg" alt=""> <p>テキストテキスト</p> </li> <li class="text"> <img src="<?php the_path(); ?>images/main_img_1-7.jpg" alt=""> <p>テキストテキスト</p> </li> <li class="text"> <img src="<?php the_path(); ?>images/main_img_1-8.jpg" alt=""> <p>テキストテキスト</p> </li> <li class="text"> <img src="<?php the_path(); ?>images/main_img_1.jpg" alt=""> <p>テキストテキスト</p> </li> </ul> </div>●CSS
.main_img {
width: 100%;
padding-top: 90px;
height: 400px;
}
#imageSlide {
width: 100%;
object-position: 50% 70%;
object-fit: cover;
display: block;
position: relative;
margin: 0;
padding: 0;
}
#imageSlide li img {
width: 100%;
height: 400px;
object-position: 50% 60%;
object-fit: cover;
display: block;
position: absolute;
}
.text p {
position: absolute;
margin-top: 200px;
left: 50%;
font-size: 60px;
color: #fff;
filter: drop-shadow(3px 3px 10px #666);
}
.text p > span {
display: inline-block;
transform: scale(0);
}
●Js
// メイン画像フェード
function photoFade() {
jQuery('#imageSlide li:first').clone(true).appendTo('#imageSlide');
jQuery('#imageSlide li:last').css({ opacity:'0'})
jQuery('#imageSlide li:last').animate({ opacity:'1' },{ duration:1500, complete:function(){
jQuery('#imageSlide li:first').remove()
}
});
}
setInterval(function(){
photoFade();
}, 4000);
試したこと
JSが原因かと思い、色々なコードを試してみましたが、根本的に解決できず。
補足情報(FW/ツールのバージョンなど)
どのブラウザでも同じような現象が起こってます。
情報が足りないようであれば、追加します。
回答1件
あなたの回答
tips
プレビュー