• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:スクロールバーの幅を取得するには?)

スクロールバーの幅を取得する方法と解決策

このQ&Aのポイント
  • CSSの overflow-y: scroll; で表示される垂直スクロールバーについて説明します。
  • スクロールバーの幅が変わる問題について詳しく説明し、解決策を求めています。
  • JavaScriptを使用してスクロールバーの幅を取得し、初期表示時に補正する方法について考えています。

質問者が選んだベストアンサー

  • ベストアンサー
  • Chaire
  • ベストアンサー率60% (79/130)
回答No.2

<offsetWidth> = <clientWidth> + <border-(left|right)-width> + <スクロールバー幅> <clientWidth> = <width> + <padding-(top|bottom)> - <スクロールバー幅> ※CSS の実装方向にもよりますが、現行主要ブラウザはこの関係が成立します。

mokpok
質問者

お礼

素晴らしい情報です。 これで解決できそうです。 ありがとうございました。

その他の回答 (1)

回答No.1

スクロールバーだけ表示したいって事は、スライダーが欲しいって事じゃないでしょうか? jQueryUIのスライダーとかどうでしょう? http://jqueryui.com/ あるいは、fleXcroll等で、スクロールバーのデザインを自分で変えてしまえば、 常に同じサイズになりませんか? http://www.hesido.com/web.php?page=customscrollbar

参考URL:
http://jqueryui.com/
mokpok
質問者

お礼

回答ありがとうございます。 質問内容が分かりにくく申し訳ありません。 Excelの「ウィンドウ枠を固定」と同様のことをHTML/JavaScriptベースで実現するために、 複数のTABLEを配置し、独立表示させたスクロールバーで同期させるという力技を、 更にパラメータによって表の数や連動対象も変更できるよう動的に生成しながらやっているため、 「スクロール部品をごっそり別のものに変える」という選択が、今となっては困難なのです。 せっかく教えて頂いたのに、申し訳ありません。 補足:単純に横幅を18pxより大きくするのではダメな理由 スクロールバーは表の右側に接するように表示させています。 これより大きな横幅にすると、表から離れてしまいます。 CSSのleftで表示位置を補正すれば良いのですが、 その補正値の算出には「現在のスクロールバーの太さ」の値が必要になります。 詳細情報が後だしになってしまい、申し訳ありませんでした。

関連するQ&A