http://storehouse.quickvps.net/search_plus/search?query=Erlang
以下のページを読んで、ホイールイベントをハンドルしてみた。
- Mouse wheel programming in JavaScript
function add_wheel_event(handler) { function handler_wrapper(e) { var delta = null; e = e || event; if (e.wheelDelta) { delta = e.wheelDelta / 120; } else if (e.detail) { delta = -e.detail / 3; } return delta ? handler(e, delta) : true; } if (window.addEventListener) { window.addEventListener('DOMMouseScroll', handler_wrapper, false); } window.onmousewheel = document.onmousewheel = handler_wrapper; } add_wheel_event(function(e, delta) { if (delta > 0) { load_prev(); } else if (delta < 0) { load_next(); } stop_event(e); cancel_event(e); return false; });
Opera9だと、deltaの符号を反転させる必要はなかったなー。
Operaのバージョンが8以下だと、動作が反対になるかも。
追記
うん、なかなか便利便利。
追記2
過剰にハンドルしてたので、以下のように変更。
function add_wheel_event(obj, handler) { function handler_wrapper(e) { var delta = null; e = e || event; if (e.wheelDelta) { delta = e.wheelDelta / 120; } else if (e.detail) { delta = -e.detail / 3; } return delta ? handler(e, delta) : true; } if (window.opera) { document.onmousewheel = handler_wrapper; } else if (obj.addEventListener) { obj.addEventListener('DOMMouseScroll', handler_wrapper, false); } else { obj.onmousewheel = handler_wrapper; } }