REPOP WEBツール倉庫

ブラウザだけで完結する便利なWEBツール、WEBアプリが沢山あります

モーダルウィンドウ ジェネレーター

モーダルウィンドウ ジェネレーター

CSSとJavaScriptで、表示位置、サイズ、開閉アニメーション、暗転オーバーレイの有無などを細かくカスタマイズできるモーダルウィンドウを生成します。

プレビュー

<!-- モーダル起動トリガーボタン -->
<button type="button" class="modal-open-btn">モーダルウィンドウを開く</button>

<!-- モーダルコンテナ (背面オーバーレイ) -->
<div class="modal-overlay" id="myModal">
	<!-- モーダルウィンドウ本体 -->
	<div class="modal-window">
		<div class="modal-header">
			<h3 class="modal-title">モーダルタイトル</h3>
			<button type="button" class="modal-close-icon" aria-label="閉じる">&times;</button>
		</div>
		<div class="modal-body">
			<p>ここにモーダルの本文が入ります。ボタンや画像などのコンテンツも配置可能です。</p>
		</div>
		<div class="modal-footer">
			<button type="button" class="modal-btn btn-cancel">キャンセル</button>
			<button type="button" class="modal-btn btn-ok">OK</button>
		</div>
	</div>
</div>
/* --- 起動ボタンのスタイル --- */
.modal-open-btn {
	padding: 12px 24px;
	font-size: 16px;
	color: #fff;
	background-color: #ff69b4;
	border: none;
	border-radius: 5px;
	cursor: pointer;
	transition: background-color 0.2s;
}
.modal-open-btn:hover {
	background-color: #ff1493;
}

/* --- オーバーレイ (背景暗転) のスタイル --- */
.modal-overlay {
	position: fixed;
	top: 0;
	left: 0;
	width: 100vw;
	height: 100vh;
	background-color: {{show_overlay_css}};
	display: flex;
	z-index: 9999;
	box-sizing: border-box;
	
	/* 表示位置のスタイル指定 */
	{{position_styles}}
	
	/* 初期状態は非表示 */
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.3s ease;
}

/* 表示時のスタイル */
.modal-overlay.is-active {
	opacity: 1;
	pointer-events: auto;
}

/* --- モーダルウィンドウ本体のスタイル --- */
.modal-window {
	width: 90%;
	max-width: {{modal_width}}px;
	background-color: #fff;
	border-radius: 8px;
	box-shadow: 0 10px 25px rgba(0, 0, 0, 0.2);
	overflow: hidden;
	
	/* アニメーション用初期状態 */
	{{animation_init_styles}}
	transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

/* 表示(アクティブ)時のアニメーション状態 */
.modal-overlay.is-active .modal-window {
	{{animation_active_styles}}
}

/* --- モーダル内部各パーツのスタイル --- */
.modal-header, .modal-body, .modal-footer {
	padding: 15px 20px;
}
.modal-header {
	border-bottom: 1px solid #eee;
	display: flex;
	justify-content: space-between;
	align-items: center;
}
.modal-title {
	margin: 0;
	font-size: 18px;
}
.modal-close-icon {
	background: none;
	border: none;
	font-size: 22px;
	cursor: pointer;
	color: #999;
}

.modal-footer {
	border-top: 1px solid #eee;
	display: flex;
	justify-content: flex-end;
	gap: 10px;
}

.modal-btn {
	padding: 6px 16px;
	font-size: 14px;
	border: 1px solid #ccc;
	border-radius: 4px;
	cursor: pointer;
	background: #fff;
}
.btn-ok {
	background-color: #ff69b4;
	color: #fff;
	border-color: #ff69b4;
}
(() => {
	// 必要な各要素の取得
	const openBtn = document.querySelector('.modal-open-btn');
	const overlay = document.querySelector('.modal-overlay');
	const closeIcon = document.querySelector('.modal-close-icon');
	const cancelBtn = document.querySelector('.btn-cancel');
	const okBtn = document.querySelector('.btn-ok');

	if (!openBtn || !overlay) return;

	// モーダルを開く関数
	const openModal = () => {
		overlay.classList.add('is-active');
	};

	// モーダルを閉じる関数
	const closeModal = () => {
		overlay.classList.remove('is-active');
	};

	// イベントリスナーの登録
	openBtn.addEventListener('click', openModal);
	if (closeIcon) closeIcon.addEventListener('click', closeModal);
	if (cancelBtn) cancelBtn.addEventListener('click', closeModal);
	if (okBtn) okBtn.addEventListener('click', () => {
		alert('OKがクリックされました');
		closeModal();
	});

	// 背面オーバーレイのクリックで閉じるかどうかの制御
	const closeOnOverlay = {{close_on_overlay}};
	if (closeOnOverlay) {
		overlay.addEventListener('click', (e) => {
			// クリックされたのがウィンドウの外側(overlay自体)である場合のみ閉じる
			if (e.target === overlay) {
				closeModal();
			}
		});
	}
})();

機能、使い方

コードの説明

opacitypointer-events: noneを組み合わせて表示状態を管理し、モーダル非表示時にキーボードフォーカスやクリック操作が裏側の要素へ透過するように制御しています。

e.target === overlayを判定条件として設定することで、モーダル内部(.modal-window)をクリックしてもモーダルが閉じず、背景部分をクリックした際のみクローズする誤作動防止ロジックを実装しています。

transformcubic-bezierイージング関数を組み合わせ、滑らかで洗練された拡大・縮小や滑り出しのモーション演出を行っています。

公開日 :
桜が舞うアニメーション ジェネレーター

桜が舞うアニメーション ジェネレーター

CSSとJavaScriptで、画面上部から風に吹かれながら優雅に舞い散る桜の花びらのアニメーションコードを生成します。

アニメーション付きハンバーガーメニュー ジェネレーター

アニメーション付きハンバーガーメニュー ジェネレーター

CSSとJavaScriptで、クリック時に3本線からバツ印へ変化するハンバーガーボタンと、画面外からスライドインするサイドメニューを自由にカスタマイズしてコード生成します。

万華鏡ジェネレーター

万華鏡ジェネレーター

CSSとJavaScriptで、Canvasを使用し幾何学模様が中心から対称に広がり色鮮やかに変化する万華鏡のような背景アニメーションを生成します。

3Dエンドロール ジェネレーター

3Dエンドロール ジェネレーター

CSSとJavaScriptで、映画のオープニングやエンディングのように画面の奥へ向かって流れる立体的な3Dテキストのスクロール演出を生成します。

マトリックス風デジタルレイン ジェネレーター

マトリックス風デジタルレイン ジェネレーター

CSSとJavaScriptで、映画「マトリックス」のように上から下へとグリーンのコード文字が流れ落ちるデジタルレイン背景エフェクトを生成します。

紙吹雪が舞うアニメーション ジェネレーター

紙吹雪が舞うアニメーション ジェネレーター

CSSとJavaScriptで、指定したボタンをクリックした際などに画面内に色とりどりの紙吹雪がランダムに舞い落ちる演出を生成します。

波紋アニメーション ジェネレーター

波紋アニメーション ジェネレーター

CSSとJavaScriptで、クリックやタップした位置を中心に、同心円状の波紋が広がりながら消えていくインタラクティブなUIエフェクトを生成します。

スポットライトUI ジェネレーター

スポットライトUI ジェネレーター

CSSとJavaScriptで、マウスカーソルの動きに合わせて指定範囲をスポットライトのように明るく照らし、周囲を暗くマスクするインタラクティブなUIを生成します。

画像比較スライダー

画像比較スライダー

2枚の画像を重ねて、スライダーのドラッグ操作で左右に切り替えてビフォーアフターを比較できるインタラクティブな画像比較UIツールです。HTML/CSS/JSコードを取得できます。

3Dに傾く透過カードのCSSジェネレーター

3Dに傾く透過カードのCSSジェネレーター

マウスの動きに合わせて傾き、表面に光が反射したような効果を持つ透過カードのデザインを生成します。

もっと見る

もっと見る

JavaScript関連ツール一覧

JSONXMLJavaScriptHTMLCSSSVGPHPPython画像処理色、カラーコードテキスト
ファイルの文字化け解消ツール

ファイルの文字化け解消ツール

文字化けしてしまうテキストファイル(Shift_JISやEUC-JPなど)の文字コードを自動判定してからUTF-8にデコードし、汎用的に使えるファイルを作成します。

JSONとXMLの相互変換ツール

JSONとXMLの相互変換ツール

JSONデータとXMLデータを相互に変換します。リアルタイムでの変換や、ルート要素・子要素名の指定に対応。

水玉模様のCSSジェネレーター

水玉模様のCSSジェネレーター

背景色、ドットの色、ドットのサイズや間隔、配置パターン(格子状・千鳥状)を調整し、水玉模様(ドット背景)のCSSコードを生成します。

clamp()シュミレーター

clamp()シュミレーター

画面幅に応じて最小サイズから最大サイズまでフォントサイズを滑らかに自動スケーリングさせるCSSのclamp()コードを生成・シミュレートします。

傾いて落ちるボタンのCSSジェネレーター

傾いて落ちるボタンのCSSジェネレーター

ホバーするとぐらっと傾き、クリックすると画面外へと落下するボタン用のアニメーションCSSを生成します。

画像のフチぼかし(透過グラデーションマスク)のCSSジェネレーター

画像のフチぼかし(透過グラデーションマスク)のCSSジェネレーター

画像の端を透過グラデーションでぼかし、背景と滑らかに馴染ませるエフェクトを生成します。mask-imageを使用し、上下左右や円形など複数の方向にフェードアウト可能です。

文字の中に画像(マスクテキスト)のCSSジェネレーター

文字の中に画像(マスクテキスト)のCSSジェネレーター

指定した画像を文字の形に切り抜き、インパクトのあるテキストエフェクトを生成します。グラフィカルな見出しやタイトルの作成に適しています。

フリッカー・ネオン(点滅ネオン)のCSSジェネレーター

フリッカー・ネオン(点滅ネオン)のCSSジェネレーター

不規則な点滅を繰り返す、リアリティのあるネオンサイン文字のエフェクトを生成します。多重シャドウによる発光と透明度の変化で、レトロな雰囲気を演出します。

虹色に輝く枠線(レインボー・ローテート)のCSSジェネレーター

虹色に輝く枠線(レインボー・ローテート)のCSSジェネレーター

枠線が虹色に変化しながら回転し続ける視覚効果を生成します。conic-gradientを活用し、画像不要で軽量な実装が可能です。

ぷかぷか浮遊(フローティング演出)のCSSジェネレーター

ぷかぷか浮遊(フローティング演出)のCSSジェネレーター

要素が空中を漂うような、浮遊アニメーションを生成するツールです。

もっと見る

もっと見る

仕事、作業関連ツール一覧