「言ってみてぇ〜〜〜!」を言ってみた。
- 「俺が書く。」
では、書いてください!に1000点
- 「マウスがブラウザの外に抜けたかも」を予知する方法。
mousemove イベントを監視して、現在の位置と、前回の位置の差を求める
その差を反転させて、現在の位置から、次の位置を予測する。
その値が領域からはみ出たら、(x)ms秒後にマウスがブラウザ領域を
うろついていそうにないか調べ、擬似イベントを document.body にして、発火。
どうだろう?
(差を求めるのに、前々回・・・と増やせば予測精度はあがる)
//@cc_on @set @V = (@_jscript_version < 5.9) document./*@if( @V ) attachEvent( 'on' + @else@*/ addEventListener( /*@end@*/ 'mousemove', (function( ) { var c = document /*@if (1) [document.compatMode == 'CSS1Compat' ? 'documentElement' : 'body'] /*@else@*/ .defaultView /*@end@*/; var w = /*@if (1) 'clientWidth' @else@*/ 'innerWidth' /*@end@*/; var h = /*@if (1) 'clientHeight' @else@*/ 'innerHeight' /*@end@*/; var mx, my; return function ( e ) { var x = e.x, y = e.y; var sx = x - mx, sy = y - my; var ex = x + sx, ey = y + sy; var mx = c[w], my = c[h]; if( ex < 0 || ey < 0 ) { // 上限はちょいと無視 var cbFunc = function ( ) { ;}; // だれか火を起こして setTimeout( cbFunc, 60 ); //発火? } mx = x, my = y; }; })(), false );
普通にイベントを2個付けろよ!とかいわせなぁ〜ぃ!?
- ホイールクリックのスクロールを禁止するには
あれは、真ん中のボタンが押されたらキャンセルするだけではだめ?>think49 さん
//@cc_on document./*@if( @_jscript_version < 5.9 ) attachEvent( 'on' + @else@*/ addEventListener( /*@end@*/ 'mousedown', function ( e ) { /*@if( @_jscript ) if( e.button == 4 ) return e.returnValue = false; @else@*/ if( e.button == 1 ) return preventDefault(); /*@end@*/ }, false ); //-->