1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

(ほぼJSを使わない)スクロールバーのない横スクロールコンテナ

Last updated at Posted at 2015-07-12

mousewheeltouchstartをハンドリングしないタイプの、横スクロールコンテナです。まずはライブサンプルをご覧ください。

スクリーンショット 2015-07-12 19.48.30.png

コードに一部JSが入ってますが、スクロール位置を検出して、現在地がどこであるかを.sliderに割り振っているからです。ここは省略可能だし、たいがいのiPhoneアプリ的なものでは横スクロール位置はでていないので、目的には合致すると思います。ということで「ほぼJSを使わない」感じで実装できます。

原理は簡単で、コンテナの外に任意の高さをもったラッパーを作ります。今回は.showcaseとしました。こいつが200pxをもっていて、子供にあたるコンテナはそれより50pxだけ多くなっています。これがブラウザが実装しているスクロールバーの実体です。ここはラッパーによりoverflow:hiddenされます。50pxだけ大きくした分をpadding-bottomに指定して、子のheightとラッパーのheightを同じにしておきます。

display:inline-blockwhite-space:nowrapでひたすら横に並べる指定にし、font-size:0で、改行や空白のサイズを0にしています。これ最小フォントサイズ規定にひっかからないか不安でしたが、とりあえず私の環境(MacのChrome/Firefox/Safari)では空白のサイズが0になりました。

あとは泥臭くmargin10pxにしたりしてる感じですが、ここはフレーバー要素です。

追記

コンテナの下にアキがでてしまう環境があったらしいので、後日調べてみます。

1
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?