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

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

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

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

3回答

1311閲覧

TOPページにアクセスする度に、ランダムな動画を再生させたい

HPELITEX2

総合スコア3

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2020/06/18 09:19

編集2020/06/19 02:05

前提・実現したいこと

TOPページにアクセスする度に、ランダムな動画を再生させたい

今後も動画をいくつか追加していく予定で、誰が観てもわかりやすい形をと思い、
動画ファイルに乱数を設定して呼び出すのではなく、
<video>XXXXXX</video>
と、まるごと呼び出せればと思います。

<<2020/06/19追記>>
再生される動画は、自動的に画面最大化にする(id="js-video" で適用)
スマホでも同様でも再生されるようにする(画面は上下に合わせて、左右は切れても良い)

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

動画が再生されない

html

<div id="random_content"></div>

Script

<script> var elements = [ '<video autoplay loop muted playsinline poster="movie/movie01.jpg" id="js-video" class="mainVisualFullScreen_video"> <source src="movie/movie01.mp4" type="video/mp4"> </video>', '<video autoplay loop muted playsinline poster="movie/movie01.jpg" id="js-video" class="mainVisualFullScreen_video"> <source src="movie/movie02.mp4" type="video/mp4"> </video>', '<video autoplay loop muted playsinline poster="movie/movie01.jpg" id="js-video" class="mainVisualFullScreen_video"> <source src="movie/movie03.mp4" type="video/mp4"> </video>', '<video autoplay loop muted playsinline poster="movie/movie01.jpg" id="js-video" class="mainVisualFullScreen_video"> <source src="movie/movie04.mp4" type="video/mp4"> </video>' ]; var randElm = elements[Math.floor(Math.random() * elements.length)]; $('#random_content').html(randElm); </script>

補足

参考にしたサイト:
https://teratail.com/questions/34499
https://teratail.com/questions/86211
https://kakedashiweb.site/archives/1404

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

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

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

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

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

kei344

2020/06/18 11:07

参考サイトのURLが適切でないので修正してください。また、URLにはリンクを張ることができますので、編集よろしくお願いします。
guest

回答3

0

文字列リテラルを改行することはできません。

長い文字列リテラル | String - JavaScript | MDN

投稿2020/06/18 09:38

Lhankor_Mhy

総合スコア36960

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

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

HPELITEX2

2020/06/19 01:12

ご回答ありがとうございます。 ご回答いただいた通り、改行せず文字列をつなげることで正常に動作しました ただ、 id="random_content"とHPに元々設定してあったID=js-video(おそらく画面を引きのばすstyle)と競合してか、画面全体に反映されなかったようです。 なにか別作を考えます。 ありがとうございました。
guest

0

ベストアンサー

後で配列変数使わないなら、配列定義する必要全くないと思います。

javascript

1// ランダム数値を取得 2const randNum = Math.floor(Math.random() * 4) + 1; 3// video要素を生成 4const videoElm = document.createElement('video'); 5// videoの各種設定 6videoElm.autoplay = true; 7videoElm.loop = true; 8videoElm.muted = true; 9videoElm.playsinline = true; 10videoElm.poster = `movie/movie0${randNum}.jpg`; 11videoElm.id = 'js-video'; 12videoElm.type = 'video/mp4'; 13videoElm.classList.add('mainVisualFullScreen_video'); 14 15// sourceの生成と設定 16const sourceElm = document.createElement('source'); 17sourceElm.src = `movie/movie0${randNum}.mp4`; 18 19// videoにsource入れ込み 20videoElm.appendChild(sourceElm); 21 22$('#random_content').html(videoElm);

投稿2020/06/18 10:07

miyabi_takatsuk

総合スコア9555

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

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

HPELITEX2

2020/06/19 01:12

ご回答ありがとうございます。 ご回答いただいたscriptで正常に動作しております。 ただ、 id="random_content"とHPに元々設定してあったID=js-video(おそらく画面を引きのばすstyle)と競合してか、画面全体に反映されなかったようです。 なにか別作を考えます。
miyabi_takatsuk

2020/06/19 01:27

> id="random_content"とHPに元々設定してあったID=js-video(おそらく画面を引きのばすstyle)と競合してか、画面全体に反映されなかったようです。 そんなこと質問本文に記載なければ誰もわかりませんよ。 回答しようがありません。
guest

0

コメント掲載後、scriptの挿入位置を変更したら、
どちらでもランダム再生+画面最大化できました。
たいへんありがとうございました。

投稿2020/06/19 01:22

HPELITEX2

総合スコア3

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

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

miyabi_takatsuk

2020/06/19 01:28

> 画面最大化できました。 そういう、本人にしかわからない情報は、 明文化しないと第三者には伝わりません。 今からでも遅くないので、質問本文に、 実現したい仕様を全て明記してください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問