質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

1回答

1286閲覧

オープニング動画を終了させてサイトを表示

d1-fujii

総合スコア10

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

1グッド

0クリップ

投稿2019/03/07 08:42

前提・実現したいこと

HPでオープニングで動画を自動再生、終了後フェードしてサイトを表示させる
途中画面をクリックすると動画を終了させたい

発生している問題・エラーメッセージ

windowsはクローム・エッジ・ie 共動画終了後フェードして消えますが、サファリは崩壊 macのサファリ・クロームは動画は動くが終了しても消えません。クリックでは終了する。 効いていないscriptのブラウザでは関係するcssも効いていません。

該当のソースコード

<div class="anime" onClick="myfunc()"> <div class="skip">skip</div> <video id="video" autoplay muted playsinline height="100%" width="100%"> <source src="test.mp4" type="video/mp4"> <source src="test.webm" type="video/webm"> </video> </div> <div class="mainSite"> コンテンツ </div> <script src="http://code.jquery.com/jquery-1.11.3.min.js" type="text/javascript"></script> <script> $(function(){ $(".mainSite").css("display", "none"); setTimeout(function() { $('.anime').fadeOut(); }, 4000); }); </script> <script> $(function(){ $(".mainSite").css({opacity:'0'}); setTimeout(function(){ $(".mainSite").css("display", "block"); $(".mainSite").stop().animate({opacity:'1'},4000); },4000); }); </script> <script> var myfunc = function () { $(".mainSite").css("display", "block"); $(".mainSite").stop().animate({opacity:'1'},4000); $('.anime').fadeOut(); } </script>

試したこと

最初は動画が動かなかったので muted を入れると自動再生するようになりました。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

bochan2👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

miyabi_takatsuk

2019/03/07 09:05

動画再生後に起動するようなロジックが無いようですが、 4000msのsetTimeoutで実行している(動画が4秒)ということでよろしいですか?
d1-fujii

2019/03/07 09:08

はい動画は4秒です。 宜しくお願い致します。
miyabi_takatsuk

2019/03/07 09:23

当方のローカル環境では、全ブラウザにて、おそらく質問者さんが期待する動きが実現できました。 ただし、webmではなく、ogvを使用してです。 webmに関しては、かなり新しい形式なので、 もしどうしてもうまくいかない場合は、ogvに切り替えて解決するかもしれません。 ちなみに、windows版safariは開発とサポートが終了して久しいので対応は必要ないかと思われます。
d1-fujii

2019/03/07 09:45

早速のご回答ありがとうございます。 ogvに変換した物を上げて見ました動画は動きますがfadeout出来ませんでした。 私もmacのローカル検証ではクロームもサファリも問題ないくフェードアウトするのですが、サイト(Xserver)にテストでアップすると上手くcloseできません。scriptはよくわからないのですが、クリックは生きているけど、setTimeoutはブラウザによっては効いていない感じです。setTimeoutの効いていない物はcssも効いていないので非表示のはずのmainSiteも見えてしまっています。
miyabi_takatsuk

2019/03/07 10:39

私も実は、自前のサイトで、macのsafariでは、(iOSも含め)動画が再生されないという現象が起きています。 質問者さんと同様に、scriptによって、表示などをコントロールしています。 他の環境では全く問題ありません。 ローカルでは大丈夫で、サーバーによって、SafariやChromeが制限をかけているとか、そんな現象かもしれません。 この件、検証重ねていきますので、今しばらくお待ちください。
d1-fujii

2019/03/07 11:14

ありがとうございます、宜しくお願い致します。 ローカルでは良い感じになったと思っていたので、サーバーに上げてアタフタしています。実は納期が明日のお昼で、実際の動画の上がりも明日の朝で、動画の音は出したいと言うことになってきて、音を出すと自動再生が止まってしまうので頭を抱えています。コントロールを表示して音だししてもautoplayが出来れば良いのですが、最初の読み込みが自動で動かず、トップをクリックして再読み込みすると動きます。時間がないので私もフリーズしています。
guest

回答1

0

時間がかかり申し訳ございません。

まだ、私の方でも解決はしていないのですが、
可能性が高そうな原因がわかったので、
回答させていただきます。

Safariで動画を表示する際、サーバーのHTTP Range Request対応が必須になっている

Service Worker(PWA)でRangeリクエストに対応する

要は、ブラウザが要求してるリクエストに対して、
サーバー側が、違ったレスポンスを返している可能性の示唆になります。

上記二つの記事は、いずれもSafariの話ではありますが、
サーバーの設定によっては、
ChromeやFireFoxなどのモダンブラウザでも同じ不都合が起きる可能性があります。

私の方でも、まだ解決はしておらず、検証中なのですが、
本質問は、ローカルは問題なくサーバー上での再生不都合なので、
この、サーバー側の設定方面で、原因を探してみるとよろしいかもしれません。

もし、完全解決方法が見つかった際は、回答を修正いたします。
よろしくお願いします。

投稿2019/03/08 01:17

miyabi_takatsuk

総合スコア9528

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

d1-fujii

2019/03/08 02:30

大変お世話になります。 いろいろお手数をお掛けしまして申し訳ございません。 音だしが必須となってしまったので、サイトの流れを考えて今日の所は仕様を変更してアップすることになりそうです。 今後のこともありますので、平行してサーバー側の設定も確認してみます。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問