時間とか日付とかホイールで入力できると割とストレスフリー。なので、jqueryとmousewheel.jsを使って実装してみる。
HTML側
<input type="text" id="hoge" name="hoge" value="0" />
javascript側
時間を入力。
$('input[name=hoge]').mousewheel(function(event, delta, deltaX, deltaY){
$targetElm = $(this)
var currentVal = parseInt(targetElm.val());//現在値
var nextVal = 0;
nextVal = currentVal + deltaY;
if(nextVal < 0) nextVal = 23;
nextVal = nextVal % 24;
elm.val(nextVal);
//ホイールイベントをここで止める(スクロールを止める)
if (event.preventDefault) {
event.preventDefault();
}
event.returnValue = false;//これないと効かないブラウザもあった気がする
});
日付を入力。日付の加減算はmoment.jsを使用。エラーチェックなし。
$('input[name=hoge]').mousewheel(function(event, delta, deltaX, deltaY){
$targetElm = $(this)
var m = moment($targetElm.val(), "YYYY-MM-DD");
if(deltaY > 0)
m.add(1,"days")
else
m.subtract(1,"days")
$targetElm.val(m.format("YYYY-MM-DD"));
//ホイールイベントをここで止める(スクロールを止める)
if (event.preventDefault) {
event.preventDefault();
}
event.returnValue = false;//これないと効かないブラウザもあった気がする
});