MP3音楽プレーヤーをモーダルウインドウで表示する方法
MP3音楽プレーヤーをモーダルウインドウで表示する方法を紹介します。ページ内のボタンをクリックするとモーダルウインドウが開き、その中に配置したHTMLのaudioタグからMP3音源を再生できるサンプルです。音楽プレーヤーを常時表示せず、必要なときだけ開けるため、ページ全体をすっきり見せながら音声コンテンツを案内できます。
JavaScriptではモーダルウインドウの開閉を制御し、右上の「×」ボタンを押したときだけ閉じる仕様にしています。モーダル外をクリックしても閉じないため、再生操作中の誤操作を防ぎやすい構成です。また、モーダルを閉じると再生中の音源を停止し、再生位置を先頭へ戻します。
音声サンプル、商品紹介、サービス案内、ポートフォリオ、会員サイトのコンテンツ紹介など、MP3をページ内で再生したい場面に利用できます。HTML・CSS・バニラJavaScriptを分けているため、ボタンの色、モーダルの幅、余白、角丸、背景色、音源ファイルを編集しやすく、初心者でも導入しやすい構成です。スマートフォン・タブレット・PCの画面幅に合わせて表示が調整されます。
免責事項 本コードの利用により発生した損害について、当サイトは一切の責任を負いません。
デモ
ボタンを押すとモーダルウインドウが表示され、サンプル音源を再生できます。
「音楽プレーヤーを開く」をクリックするとモーダルウインドウが表示され、MP3ファイルを再生できます。デモではサンプル音源が再生されますので、音量にご注意ください。モーダルは右上の「×」ボタンで閉じることができ、閉じると音楽も停止します。
コードをコピーして使おう!
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>MP3音楽プレーヤー付きモーダルウインドウ</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<!-- モーダルを開くボタン -->
<div class="mp3-music-player-modal-window_demo">
<!-- デモタイトル -->
<div class="mp3-music-player-modal-window_title">
MP3音楽プレーヤー
</div>
<!-- 操作説明 -->
<p class="mp3-music-player-modal-window_text">
ボタンを押すと音楽プレーヤーが表示されます。
</p>
<!-- MP3ファイルの注意書き -->
<p class="mp3-music-player-modal-window_notice">
このサンプルにはMP3ファイルは含まれていません。再生するMP3ファイルを用意し、musicフォルダへ配置してご利用ください。
</p>
<!-- モーダルを開くボタン -->
<button
type="button"
class="mp3-music-player-modal-window_open"
id="mp3MusicPlayerModalOpen"
>
音楽プレーヤーを開く
</button>
</div>
<!-- モーダル背景 -->
<div
class="mp3-music-player-modal-window_overlay"
id="mp3MusicPlayerModal"
aria-hidden="true"
>
<!-- モーダル本体 -->
<div
class="mp3-music-player-modal-window_window"
role="dialog"
aria-modal="true"
aria-labelledby="mp3MusicPlayerModalTitle"
>
<!-- モーダル上部 -->
<div class="mp3-music-player-modal-window_header">
<!-- モーダルタイトル -->
<div
class="mp3-music-player-modal-window_heading"
id="mp3MusicPlayerModalTitle"
>
MP3音楽プレーヤー
</div>
<!-- モーダルを閉じるボタン -->
<button
type="button"
class="mp3-music-player-modal-window_close"
id="mp3MusicPlayerModalClose"
aria-label="モーダルを閉じる"
>
×
</button>
</div>
<!-- MP3音楽プレーヤー -->
<audio
class="mp3-music-player-modal-window_audio"
id="mp3MusicPlayerAudio"
controls
>
<source src="music/sample.mp3" type="audio/mpeg">
お使いのブラウザはaudioタグに対応していません。
</audio>
</div>
</div>
<script src="script.js"></script>
</body>
</html>
サンプル一式を取得する場合 HTML・CSSなどすべてのファイルが必要な場合は、「サンプル一式をダウンロード」をクリックしてください。
Q ダウンロードしたけど、これをネット上で動かすにはどうするの?
Googleアカウントがあれば、InfinityFreeで無料サーバーを作成して、ダウンロードしたサンプルをネット上で動かせます。
InfinityFreeを初めて利用する場合は①から、すでにサーバーを作成している場合は②へ進んでください。
ファイル構成と設置方法
このサンプルはHTML・CSS・JavaScriptの3ファイルで構成されています。HTMLではモーダルを開くボタン、モーダル本体、MP3音楽プレーヤーを配置し、CSSではデモ表示エリアやモーダル背景、ボタン、音楽プレーヤーなどのデザインを設定します。JavaScriptではモーダルの開閉を行い、モーダルを閉じたときに再生中のMP3音源を停止して再生位置を先頭へ戻します。再生するMP3ファイルはZIPには含まれていないため、利用者自身で用意してmusicフォルダへ配置します。
sample/
├── index.html
├── style.css
└── script.js
各ファイルの役割
index.htmlはモーダルとMP3音楽プレーヤーを構成するファイルです。「MP3音楽プレーヤー」のタイトル、操作説明、注意書き、ボタンの文字、モーダルタイトルを変更できます。audio要素のmusic/sample.mp3で、利用者自身が用意するMP3ファイルを読み込みます。
style.cssはデモ表示エリア、モーダル背景、モーダル本体、開くボタン、閉じるボタン、MP3音楽プレーヤーのデザインを設定するファイルです。横幅、余白、背景色、文字色、枠線、角丸、影などを変更できます。
script.jsはモーダルの開閉を制御するファイルです。「音楽プレーヤーを開く」ボタンをクリックするとis-openクラスを追加してモーダルを表示します。「×」ボタンをクリックすると、MP3音源を停止して再生位置を先頭へ戻したあと、is-openクラスを削除してモーダルを非表示にします。
設置方法・使い方
sampleフォルダへindex.html、style.css、script.jsを配置します。MP3ファイルはZIPに含まれていないため、sampleフォルダ内にmusicフォルダを作成し、利用者自身で用意したMP3ファイルをsample.mp3というファイル名で配置してください。配置後はsample/music/sample.mp3となります。別のファイル名を使用する場合は、index.htmlの<source src="music/sample.mp3" type="audio/mpeg">にあるmusic/sample.mp3を、実際に配置したMP3ファイルのパスへ変更します。
すべての準備ができたらsample/index.htmlをブラウザで開いてください。index.htmlからstyle.cssとscript.jsを読み込んで動作します。「音楽プレーヤーを開く」をクリックするとモーダルが表示され、audio要素の再生ボタンからMP3音源を再生できます。モーダル右上の「×」ボタンをクリックすると、再生中の音源が停止し、再生位置が先頭へ戻ってからモーダルが閉じます。
カスタマイズできる内容
index.htmlでは「MP3音楽プレーヤー」のタイトル、操作説明、注意書き、開くボタンの文字、モーダルタイトル、再生するMP3ファイルのパスを変更できます。別のMP3ファイルを使用する場合は、audio要素内のsrc="music/sample.mp3"を実際の配置先に合わせて変更してください。
style.cssではデモ表示エリアやモーダル本体の横幅、余白、背景色、文字色、枠線、角丸、影、ボタンのサイズや色などを変更できます。モーダル背景のbackground:rgba(15,23,42,.55);を変更すると、モーダル表示中の背景色や透明度を調整できます。
数値調整
style.css
padding:40px 20px;
ページ全体の余白です。40pxが上下、20pxが左右の余白で、値を大きくすると画面端との間隔が広がり、小さくすると狭くなります。
max-width:700px;
デモ表示エリアの最大横幅です。値を大きくすると横に広がり、小さくするとコンパクトになります。
padding:32px;
デモ表示エリアの内側余白です。値を大きくすると内容と外枠の間隔が広がり、小さくすると狭くなります。
border-radius:18px;
デモ表示エリアの角丸です。値を大きくすると丸みが強くなり、0にすると四角になります。
font-size:24px;
デモタイトルの文字サイズです。値を大きくするとタイトルが大きくなり、小さくすると小さくなります。
padding:14px 16px;
MP3ファイルについての注意書きの内側余白です。14pxが上下、16pxが左右の余白で、値を大きくすると文章と枠線の間隔が広がります。
min-height:48px;
「音楽プレーヤーを開く」ボタンの最小高さです。値を大きくするとボタンの最低限の高さが大きくなります。
padding:12px 28px;
「音楽プレーヤーを開く」ボタンの内側余白です。12pxが上下、28pxが左右の余白で、値を大きくするとボタンが大きくなります。
transition:background .2s ease;
開くボタンと閉じるボタンの背景色が切り替わる時間です。.2sは0.2秒を表し、値を大きくするとゆっくり、小さくすると速く変化します。
padding:20px;
モーダル背景の内側余白です。値を大きくすると画面端とモーダル本体の間隔が広がり、小さくすると狭くなります。
max-width:500px;
モーダル本体の最大横幅です。値を大きくするとモーダルが横に広がり、小さくするとコンパクトになります。
padding:28px;
モーダル本体の内側余白です。値を大きくすると内容とモーダル端の間隔が広がり、小さくすると狭くなります。
gap:16px;
モーダル上部にあるタイトルと「×」ボタンの間隔です。値を大きくすると要素同士の間隔を広く確保できます。
margin-bottom:18px;
モーダル上部とMP3音楽プレーヤーの間隔です。値を大きくすると上下の間隔が広がり、小さくすると狭くなります。
font-size:22px;
モーダルタイトルの文字サイズです。値を大きくすると文字が大きくなり、小さくすると小さくなります。
width:40px;・height:40px;
モーダル右上にある「×」ボタンの横幅と高さです。両方を同じ値にすると、border-radius:50%;によって円形のボタンになります。値を大きくするとボタン全体が大きくなります。
font-size:24px;
「×」の文字サイズです。値を大きくすると「×」が大きくなり、小さくすると小さくなります。
レスポンシブ対応
このサンプルはレスポンシブ対応です。style.cssのデモ表示エリアにwidth:100%とmax-width:700px、モーダル本体にwidth:100%とmax-width:500pxを設定しているため、利用できる画面幅に合わせて横幅が縮小されます。また、MP3音楽プレーヤーにもwidth:100%を指定しているため、モーダル本体の横幅に合わせて表示されます。
640px以下ではメディアクエリを適用し、bodyの余白をpadding:24px 12px;、デモ表示エリアをpadding:24px;、モーダル本体をpadding:22px;へ変更します。さらにデモタイトルを21px、モーダルタイトルを19pxへ縮小するため、スマートフォン・タブレット・PCの画面幅に合わせて利用できます。
コメント