REPOP WEBツール倉庫

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

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

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

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

プレビュー

<!-- デジタルレインを描画するCanvas要素 -->
<canvas class="matrix-canvas"></canvas>
/* Canvasを親コンテナ全体にフィットさせるスタイル */
.matrix-canvas {
	display: block;
	width: 100%;
	height: 350px;
	background-color: #000000;
}
(() => {
	// Canvas要素の取得とコンテキストの初期化
	const canvas = document.querySelector('.matrix-canvas');
	if (!canvas) return;

	const ctx = canvas.getContext('2d');
	
	// 高解像度対応とサイズ調整
	const resizeCanvas = () => {
		canvas.width = canvas.offsetWidth;
		canvas.height = canvas.offsetHeight;
	};
	resizeCanvas();

	// 選択された複数の文字タイプを結合して文字セットを定義
	let alphabet = '';
	if ('{{use_katakana}}' === 'true') {
		alphabet += 'アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン';
	}
	if ('{{use_alphabet}}' === 'true') {
		alphabet += 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
	}
	if ('{{use_number}}' === 'true') {
		alphabet += '0123456789';
	}
	if ('{{use_kanji}}' === 'true') {
		alphabet += '影虚無混沌幽霊死生殺滅暗黒深淵天帝神極覇龍魔王獄零界毒怨呪壊乱骸魄魄';
	}
	
	// 何も選択されていない場合のフォールバック
	if (!alphabet) {
		alphabet = 'アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン';
	}
	const letters = alphabet.split('');

	// 列幅と描画列数の算出
	const fontSize = {{font_size}};
	let columns = Math.floor(canvas.width / fontSize);

	// 各列の現在の落下Y座標を保持する配列
	let rainDrops = [];
	const initDrops = () => {
		columns = Math.floor(canvas.width / fontSize);
		// 初期Y座標をランダムにばらつかせることで、開始時の一斉落下を回避
		rainDrops = Array.from({ length: columns }, () => {
			return Math.floor(Math.random() * -(canvas.height / fontSize));
		});
	};
	initDrops();

	// 画面リサイズ時に再計算
	window.addEventListener('resize', () => {
		resizeCanvas();
		initDrops();
	});

	// 描画処理関数
	const draw = () => {
		// 半透明の黒で塗りつぶすことで、文字の残像効果(テール)を表現
		ctx.fillStyle = 'rgba(0, 0, 0, 0.05)';
		ctx.fillRect(0, 0, canvas.width, canvas.height);

		// 文字描画用のスタイル設定
		ctx.fillStyle = '{{color}}';
		ctx.font = `${fontSize}px monospace`;

		// 各縦列ごとに文字を1個描画して下にずらす
		for (let i = 0; i < rainDrops.length; i++) {
			const text = letters[Math.floor(Math.random() * letters.length)];
			const x = i * fontSize;
			const y = rainDrops[i] * fontSize;

			ctx.fillText(text, x, y);

			// 画面下部に達したか、一定のランダム確率を満たした場合は最上部に戻す
			if (y > canvas.height && Math.random() > (1 - ({{density_percent}} / 100))) {
				rainDrops[i] = 0;
			}
			rainDrops[i]++;
		}
	};

	// 落下速度(更新レート)の設定とループの実行
	const fps = {{speed}};
	const interval = 1000 / fps;
	let lastTime = 0;

	const animate = (timestamp) => {
		if (!lastTime) lastTime = timestamp;
		const elapsed = timestamp - lastTime;

		if (elapsed > interval) {
			draw();
			lastTime = timestamp - (elapsed % interval);
		}
		requestAnimationFrame(animate);
	};
	requestAnimationFrame(animate);
})();

機能、使い方

コードの説明

getContext('2d')を使用して、Canvas APIによる描画操作を行っています。

requestAnimationFrameによる高精度なループアニメーションを使用し、指定したFPS間隔(落下速度)に調節して文字描画を処理しています。

半透明の塗りつぶし(fillRect)によって古いフレームを少しずつ隠し、文字がゆっくり消えながら落下するリアルな流れを再現しています。

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

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

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ジェネレーター

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

もっと見る

もっと見る

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