2026-04-07

anond:20260320163705

真ん中ボールじゃないけど、ロジの MX Master は?

自分はこんなユーザースクリプトを使って「右クリックしながらホイール」で横スクロールさせてる。

ブラウザ限定なっちゃうけど似たようなことができるマウスジェスチャもあると思う。

OSレベル可能マウスジェスチャも…探せばあるかもしれない?

// ==UserScript==
// @name        * Rightclick Scroller
// @description 右クリックしながら左右にスクロールできるようにします。
// @include     *
// @version     1.0.0
// @grant       none
// ==/UserScript==

(function(){
  const SCRIPTID = 'Rightclick Scroller';
  const BUTTON = 2;// Rightclick
  const SPEED = 1;// Negative to Reverse
  let target = null, wheeled = false;
  const isScrollable = function(e){
    if(e.clientWidth === e.scrollWidth) return false;
    // 実際にスクロールさせてみるのが残念ながら最善策
    const scrollLeft = e.scrollLeft;
    e.scrollLeft += 1;
    if(e.scrollLeft > scrollLeft){
      e.scrollLeft = scrollLeft;// 元に戻す
      return true;
    }
    e.scrollLeft -= 1;// 右端までスクロール済みの時にも対応
    if(e.scrollLeft < scrollLeft){
      e.scrollLeft = scrollLeft;// 元に戻す
      return true;
    }
    return false;
  };
  const wheel = function(e){
    //console.log(SCRIPTID, e, target);
    target.scrollLeft += e.deltaY * SPEED;
    wheeled = true;
    e.preventDefault();
    e.stopPropagation();
  }
  const options = {capture: true, passive: false};
  window.addEventListener('mousedown', e => {
    //console.log(SCRIPTID, e, target);
    if(e.button !== BUTTON) return;
    for(target = e.target; target; target = target.parentNode){
      if(isScrollable(target) === true) break;
      if(target === document) return;
    }
    wheeled = false;
    window.addEventListener('wheel', wheel, options);
  });
  window.addEventListener('mouseup', e => {
    //console.log(SCRIPTID, e, target);
    if(e.button !== BUTTON) return;
    window.removeEventListener('wheel', wheel, options);
  }, {capture: true});// マウスジェスチャとの競合回避
  window.addEventListener('blur', e => {
    //console.log(SCRIPTID, e, target);
    window.removeEventListener('wheel', wheel, options);
  });
  window.addEventListener('contextmenu', e => {
    //console.log(SCRIPTID, e, target);
    if(wheeled === true) e.preventDefault();
  });
})()
記事への反応 -
  • 昔あったMighty Mouseみたいにボールが中央についていて、転がしてスクロールできるヤツが理想。 よくあるトラックパッドやトラックボールマウスは自分にはとても使いにくいし、Magic Mous...

    • 真ん中ボールじゃないけど、ロジの MX Master は? 自分はこんなユーザースクリプトを使って「右クリックしながらホイール」で横スクロールさせてる。 ブラウザ限定になっちゃうけど...

    • ホイールが左右に動かせる奴あるやろ

    • そもそも横スクロールの需要が低いからなあ

    • Macでミドルクリック+横スクロールなら、Magic Mouse+Middle(買い切り有料)かMiddle Click(無料)。 Middleは有料だけど、流石に快適。 Middle Clickは指3本でクリックするのがどうも使いにくい...

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん