Little Strange Software

スマホアプリの開発を行う LittleStrangeSoftware のブログです。

【CSS】縦スライダー【この方法に気づかなかった…】

 どうも!LSSです!!

 

これまで、コード生成ツール カテゴリーなどでよく「スライダー」を使ってきました。

↑こういうやつ。

 

で、たびたび思っていたんですが…「縦のスライダーって出来ないのかな」と。

 

例えば「横位置」「縦位置」をスライダーで調整可能にする、といった場面で、横位置はいいとしても縦位置は「縦スライダー」であったほうが直感的に分かりやすいですよね。

 

ところが、数あるinput部品の中にもその「縦スライダー」が無い。

という事で諦めていたのですが…実に単純な方法で解決できました!

 

f:id:little_strange:20220327233518p:plain

 

縦スライダー(下から上に)

 

 

コード

<div style="height: 200px;">
<input style="transform-origin: 100% 50%; transform: translateX(-200px) rotate(-90deg); width: 200px;" max="100" min="0" type="range" />
</div>

 

 

縦スライダー(上から下に)

 

 

コード

<div style="height: 200px;">
<input style="transform-origin: 0% 50%; transform: rotate(90deg); width: 200px;" max="100" min="0" type="range" />
</div>

 

 

transform:rotateで回転させるだけの簡単なお仕事

はい。
「横になっているものを縦にする」ので、単に回転させればよいだけの話でしたw

コード中で「200」となっているのは「スライダーの表示幅(じゃなくて高さ)」で、変更する場合は合わせて変更が必要となります。

 

rotateで回転させるだけ…なのですが、位置合わせのために transform-origintranslateX を設定しています。

また、続く要素が重ならないようにdivタグで囲み、そこに height をスライダーの高さ分確保している、というコードになります。

 

いやぁ…rotateも今まで散々使っていたのに、この方法に今まで気づかなかったとは^^;;;

 

 

 

ってなとこで、今回はこのへんで!

次回もまた、よろしくお願いします^^