画面右からスライドインするモーダルウインドウの作り方
画面右からスライドインするモーダルウインドウの作り方を紹介します。モーダルウインドウを表示すると、画面右側から中央へ向かって滑らかにスライドしながら表示されるサンプルです。通常の中央表示とは違い、横方向の動きを付けることで、通知や案内を自然に目立たせることができます。
サンプルコードでは、「モーダルを開く」ボタンをクリックすると、モーダルウインドウが画面右からスライドインして表示されます。「閉じる」ボタンをクリックするとモーダルは非表示になり、再度ボタンを押すことで何度でも動作を確認できます。HTML・CSS・JavaScriptだけで実装しているため、外部ライブラリを使わずに導入できます。
お知らせ、確認ダイアログ、キャンペーン案内、会員サイトの通知など、右側から自然に表示したいUIに活用できます。タイトルや本文はHTML、色や余白、アニメーション速度、スライド位置はCSS、開閉処理はJavaScriptで変更できます。
免責事項 本コードの利用により発生した損害について、当サイトは一切の責任を負いません。
デモ
コードをコピーして使おう!
<!DOCTYPE html>
<html lang="ja">
<head>
<!-- 文字コード -->
<meta charset="UTF-8">
<!-- スマートフォン対応 -->
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- ページタイトル -->
<title>画面右からスライドインするモーダルウインドウ</title>
<!-- CSS読み込み -->
<link rel="stylesheet" href="style.css">
</head>
<body>
<!-- デモ全体 -->
<div class="modal-slide-in-right_wrap">
<!-- タイトル -->
<h1 class="modal-slide-in-right_title">
画面右からスライドインするモーダルウインドウ
</h1>
<!-- 説明文 -->
<p class="modal-slide-in-right_text">
モーダルウインドウが画面右から中央へスライドしながら表示されます。
</p>
<!-- 開くボタン -->
<button
class="modal-slide-in-right_open"
type="button"
data-modal-open>
モーダルを開く
</button>
</div>
<!-- モーダル背景 -->
<div
class="modal-slide-in-right_overlay"
data-modal-overlay>
<!-- モーダル本体 -->
<div
class="modal-slide-in-right_modal"
data-modal-box
role="dialog"
aria-modal="true"
aria-labelledby="modal-title">
<!-- タイトル -->
<h2
id="modal-title"
class="modal-slide-in-right_modal-title">
モーダルタイトル
</h2>
<!-- 本文 -->
<p class="modal-slide-in-right_modal-text">
画面右から滑らかにスライドインして表示されるモーダルウインドウです。
</p>
<!-- 閉じるボタン -->
<button
class="modal-slide-in-right_close"
type="button"
data-modal-close>
閉じる
</button>
</div>
</div>
<!-- JavaScript読み込み -->
<script src="script.js"></script>
</body>
</html>
ファイル構成と設置方法
このサンプルはHTML・CSS・JavaScriptの3ファイルで構成されています。 HTMLでモーダルウインドウの構造を作成し、CSSで画面右から中央へスライドインするアニメーションやデザインを設定、JavaScriptでモーダルウインドウの開閉処理を行います。 横方向に動きながら表示されるため、お知らせや確認画面などを自然に目立たせたい場面で利用できます。
sample/
├── index.html
├── style.css
└── script.js
各ファイルの役割
・index.html:モーダルを開くボタン、モーダルウインドウ本体、タイトル、本文、閉じるボタンを配置します。
・style.css:レイアウト、背景色、ボタン、モーダルのサイズ、画面右からスライドインするアニメーションを設定します。
・script.js:モーダルウインドウを開く処理、閉じる処理、表示・非表示の切り替えを行います。
設置方法・使い方
① sampleフォルダを作成します。
② index.html・style.css・script.jsを配置します。
③ index.htmlをブラウザで開きます。
④ 「モーダルを開く」ボタンをクリックすると、モーダルウインドウが画面右からスライドしながら表示されます。
⑤ 「閉じる」ボタンをクリックするとモーダルウインドウが閉じます。
カスタマイズできる内容
・index.htmlでは、タイトルや本文、ボタンの文字を変更できます。
・style.cssでは、モーダルの色・サイズ・余白・角丸・影・背景色・表示位置を変更できます。
・script.jsでは、開閉方法や表示タイミングなどの動作を変更できます。
数値調整
・style.cssの「transform: translateX(120px);」は、画面右から移動してくる開始位置です。値を大きくすると、より右側からスライドして表示されます。
・style.cssの「transition: transform .35s ease, opacity .35s ease;」は、スライドインアニメーションの時間です。.35を大きくするとゆっくり、小さくすると素早く表示されます。
・script.jsの「350」はモーダルを閉じるまでの待機時間です。CSSのtransition時間と同じ値に設定してください。
レスポンシブ対応
このサンプルはレスポンシブ対応です。style.cssで「width:100%;」「max-width:420px;」「padding:20px;」を使用しているため、画面サイズに応じてモーダルの幅が自動調整されます。また、640px以下では余白を変更しているため、スマートフォン・タブレット・PCでも利用しやすい構成です。
コメント