前提・実現したいこと
HPを作っていて、
①最初にローディング画像が表示される。その画像は3秒後にフェードアウトする
②ローディング画像がフェードアウト後に、ビデオが再生
③ビデオ再生が終わったら、ビデオが消える
その後、コンテンツが表示される
ということをやりたいのですが、
当方、JS初心者で、参考サイトを見て作っているのですが、うまくいきません。
①画像3秒後フェードアウトと、③ビデオを消すはうまくいくのですが、
②のビデオが再生ができません。
videoタグにautoplayをつけず、【$(".video").play();】で再生を制御できるかと思ったのですがだめでした。
上手くいく方法をお教えいただければと思います。
発生している問題・エラーメッセージ
エラーメッセージ
該当のソースコード
html
1<body> 2 3 4 <img class="loading-img" src="loading-img.jpg" > 5 <video class="video" src="video.mp4" playsinline muted oncontextmenu="return false;"></video> 6 <div class="contents"> 7 コンテンツコンテンツコンテンツコンテンツコンテンツ 8 </div> 9 10 <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script> 11 <script> 12 $(function() { 13 const promise = new Promise(function(resolve, reject){ 14 //1番目:ローディング画像を3秒後にフェードアウト 15 setTimeout(function() { 16 $('.loading-img').fadeOut(); 17 resolve(); 18 }, 3000); 19 }); 20 promise.then(function(){ 21 //2番目:ローディング画像がフェードアウト後にビデオが再生 22 $(".video").play(); 23 }).then(function(){ 24 //3番目:ビデオ再生が終わったら、ビデオが消える 25 $(".video").css("opacity", "0"); 26 }); 27 }); 28 </script> 29</body>
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/10/15 08:08 編集
2021/10/15 08:24
2021/10/15 10:03