Open3

スクロールバー表示の調査

match1124match1124

スクロールバー表示されているかどうかの検知可能かどうか

可能そう

function scrollbarXVisible(element) {
  return element.scrollHeight > element.clientHeight;
}
// or
function scrollbarYVisible(element) {
  return element.scrollWidth > element.clientWidth;
}

https://zenn.dev/antez/books/6da596a697aa86/viewer/c21f46

スクロールバーの幅を取得可能か

可能そう

let table = document.querySelectorAll('.table_scroll .table_main');
if(table[0]){
  let clientWidth = table[0].clientWidth;
  let offsetWidth = table[0].offsetWidth;
  let scrollbarWidth = offsetWidth - clientWidth;
  console.log(scrollbarWidth);
}

スクロールバーを非表示にできるかどうか

できそう

.sample {
  -ms-overflow-style: none; /* IE, Edge 対応 */
  scrollbar-width: none;    /* Firefox 対応 */
}

.smaple::-webkit-scrollbar {
  display: none; /* Chrome, Safari 対応 */
}

スクロールバーの最大幅は何pxか

正確にはわからず

17px? っぽい

古い & この記事しかないので信憑性に欠ける

デザインはどのように実装する想定になるか

  • スクロールバーのwidthを固定にする(firefoxは除く)
  • スクロールバーをそもそも非表示にする
match1124match1124

スクロールバーの幅を制御、変更可能か

できる?

Firefox の場合

細かくは設定できなそう

/* スクロールバー(幅)	対象要素 */
scrollbar-width: thin;

/* スクロールバー軌道(色)	対象要素 */
scrollbar-color: thumb track;

/* 移動タブ(色)	対象要素 */
scrollbar-color: thumb track;

Firefox 以外のブラウザ

細かく style 設定できそう

/* Firefox 以外に対応 */
  *::-webkit-scrollbar {
    /* スクロールバー全体のstyle: width, height はここでしかできなそう */
    width: 32px; // y
    height: 32px; // x
    background: red;
  }

  ::-webkit-scrollbar-track {
    /* スクロールバーの背景 */
    width: 24px; // 効かない
    height: 24px; // 効かない
    background: yellow;
    border-radius: 8px;
  }

  ::-webkit-scrollbar-thumb {
    /* スクロールバーのスクロールして動かす部分 */
    width: 20px; // 効かない
    height: 20px; // 効かない
    background: blue;
    border-radius: 50px;
  }

Notion の Style

Google カレンダー の Style