3
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 3 years have passed since last update.

inputのrangeのデザインを変えたいので1から作成した

Posted at

#はじめに
皆様はrangeのつまみ部分のデザインを変えたいと思ったことはないでしょうか。
image.png
知らべてみると、::-webkit-slider-thumbで変更出来ますが、非標準です。しかもこれには擬似要素が付与出来ません。
困った時のstackoverflowで質問してもやはり無理とのこと...。

じゃあ、作るか!

#前提知識
##rangeの見た目はブラウザによって違う
rangeの見た目はブラウザによって違います。
image.png
input type=range タグをカスタマイズするために

これは2017年の記事ですが、例えばchromeではデザインが変更されていたりします。
Chrome のフォーム コントロールとフォーカスのアップデート
このため、今後もずっと同じ見た目とは限りません。
##素のままでは変更する量が多い
input type=range タグをカスタマイズするために
この記事を見てもらえればわかりますが、ブラウザによって変更する擬似要素が違います。
つまり、全ブラウザで同じ見た目にする場合は全てリセットしなければなりません。その上、全要素を指定しなければなりません。

#本編
上記を踏まえ、作成していきます。
属性は、min,max,valueをつけます。step?知らんな(すみません実装出来ませんでした)

See the Pen range by 暁の流星 (@nomber1910) on CodePen.

今回はChromeのrangeに似せて作成しました。個人的にほぼ似ていると思います。
###良い点

  • つまみが好きにデザイン出来る
    • つまみ単体を一つの要素で作成しているので好きにデザインすることが出来ます。
  • その他も好きにデザイン出来る
    • その他も一つ一つを別の要素で作成しているので好きにデザインすることが出来ます。
  • 挙動を自分で変えることが出来る
    • 中の挙動は全てJSで作成しているので自分で挙動を変えることが出来ます。

###悪い点・反省点

  • ドラッグが出来てしまう
    • 今回実装するにあたって、一つ一つをdivで作成したため、つまみをスライドする際にドラッグしてしまい、挙動がおかしくなってしまう時があります。
  • stepが実装できなかった
    • 段階を踏んでつまみを動かすのが難しかった。こればかりは実力不足。
  • スマホ対応していない
    • スマホ対応むず~い。

#まとめ
HTMLのタグ作ってる人偉いね。
でも開発が止まってる以上自分で開拓しなければならないジレンマ。
次のバージョンで変更できるようになってるといいな。

3
1
0

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
3
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?