私はHTML5要素をいくつか使いこなしています。これはChromeでのみ機能します。数字入力スクロールのHTML5イベントリスナー - Chromeのみ
数値の入力タイプを使用すると、最小、最大、およびステップを設定し、上下の矢印を使用して入力を制御できます。 <input type="number" min="0" max="100" step="5" />
クリックイベントリスナーをバインドすると、矢印が押されていることがわかりました。フィールドがぼやけてしまうまで、実際には変更は行われません。キーボードの上下矢印キーを使用して範囲内の値を変更することもできます。キー入力バインドでこれらの値を取得できます。
しかし、Chromeでは、マウスホイールを使用して入力を移動し、入力を移動してスクロールすることもできます。しかし、私はこのイベントを聞く方法を見つけることができませんでした。
HTML:
<input type="number" min="0" max="100" step="5" id="test" />
のJavaScript(使用してjQueryの):
$('#test').click(function(){
$(this).after('<br />click');
});
$('#test').change(function(){
$(this).after('<br />change');
});
$('#test').keypress(function(){
$(this).after('<br />keypress');
});
そのスクロールの変更をリッスンする方法上の任意のアイデアは?繰り返しますが、これはこの執筆時点でChromeでのみ機能します。
あなたの質問への答えではないが、あなたはまた、イベントハンドラのすべてを置き換える、setTimeoutをループで値への変更を追跡することを検討してください。優れたパフォーマンスは得られませんが、どの入力方法でも動作します。 –
それは完全に機能します。ピントを合わせてタイマーを始めるだけで、ぼかしでそれを殺すこともできます。このようなエッジケースでは、私は生産時にそれについて心配するつもりはありませんが、私は理論的価値に興味がありました。 – hookedonwinter
FWIW - 数字入力フィールドをスクロールするか、インクリメントボタンをクリックすると、クロムが変更イベントを発生させるように見えます。 –