REPOP WEBツール倉庫

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

JavaScriptの長押しイベントを実装するコード生成ツール

JavaScriptの長押しイベントを実装するコード生成ツール

左クリックやタップ長押しのイベントを実装するためのJavaScriptコードを生成します。長押しの時間設定や動作確認が可能です。

プレビュー

<button id="target" class="long-press-btn">
	<span id="log">長押ししてください</span>
	<span class="progress-bar"></span>
</button>
.long-press-btn {
	position: relative;
	width: 200px;
	height: 60px;
	border: 2px solid #333;
	background: #fff;
	cursor: pointer;
	display: flex;
	justify-content: center;
	align-items: center;
}

#log {
	z-index: 2;
	font-weight: bold;
	pointer-events: none;
}

/* プログレスバー */
.long-press-btn .progress-bar {
	position: absolute;
	top: 0;
	left: 0;
	height: 100%;
	width: 0%;
	background-color: #00FA9A;
	z-index: 1;
	transition: none;
}
const target = document.getElementById('target');
const progressBar = target.querySelector('.progress-bar');
const log = document.getElementById('log');

// 変数
const longPressDuration = {{duration}}; // 長押し時間 (ms)
let timerId;
let isCompleted = false;
let preventDefault = {{prevent_default}};

// 長押し開始
function onStart(e) {
	// 既に完了状態の場合は処理しない
	if (isCompleted) {
		return;
	}

	// マウスの右クリックは無視する
	if (e.type === 'mousedown' && e.button !== 0) return;

	// デフォルトイベントを破棄するかどうか(オプション)
	if (preventDefault) {
		e.preventDefault();
	}

	progressBar.style.transition = `width ${longPressDuration}ms linear`;
	progressBar.style.width = '100%';

	// 長押し完了した時の処理
	timerId = setTimeout(() => {
		log.innerText = '長押し完了!';
		target.classList.add('completed');
		isCompleted = true;
	}, longPressDuration);
	// ここに処理を追加する
}

// 長押しキャンセル処理
function onEnd(e) {
	// 既に完了状態の場合は処理しない
	if (isCompleted) {
		return;
	}

	// 完了前に離した場合のキャンセル処理
	clearTimeout(timerId);
	progressBar.style.transition = 'none';
	progressBar.style.width = '0%';
}

// イベントリスナー登録
target.addEventListener('mousedown', onStart);
target.addEventListener('mouseup', onEnd);
target.addEventListener('mouseleave', onEnd);

target.addEventListener('touchstart', onStart, { passive: false });
target.addEventListener('touchend', onEnd);
target.addEventListener('touchcancel', onEnd);

機能、使い方

実装のポイント

タイマー制御
setTimeoutを使用して長押しを判定しています。指やマウスを離した瞬間にclearTimeoutを呼ぶことで、誤操作を防ぎます。

preventDefault について
特にモバイル環境では、長押し時にコンテキストメニュー(右クリックメニュー)が出てしまうのを防ぐため、passive: false設定とあわせてデフォルト挙動を止める設定が推奨されます。

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

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

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

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

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

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

万華鏡ジェネレーター

万華鏡ジェネレーター

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

画像比較スライダー

画像比較スライダー

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

もっと見る

もっと見る

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

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

もっと見る

もっと見る

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