上毛印刷株式会社

【JavaScript】jQueryを使わずセレクトをカスタマイズできるライブラリ「Slim Select」

【JavaScript】jQueryを使わずセレクトをカスタマイズできるライブラリ「Slim Select」

2025年01月06日
WEBサイト制作
  • #HTML
  • #css
  • #JavaScript
  • #tips

こんにちは!
上毛印刷WEB制作担当のソーヤです。

今回は、意外に使用頻度が多そうなtipsを紹介します。

ある日、お問い合わせフォームのコーディングをしようと思い、
デザイナーから送られてきたデザインデータを見ると、
selectタグの選択肢にまでデザイン指定がありました。

これってコーダーにとって結構面倒で、
selectタグのスタイルは各ブラウザ依存で、
思い通りにカスタマイズするためにはかなりの労力が必要でした。

ですが、このライブラリを使用するとjQueryにも頼らずに簡単に、
selectのスタイルをカスタマイズできます!

◆公式サイト(別タブで開きます)
https://slimselectjs.com/

実装例


HTML例

<script src="https://unpkg.com/slim-select@latest/dist/slimselect.min.js"></script>
<link href="https://unpkg.com/slim-select@latest/dist/slimselect.css" rel="stylesheet"></link>

まず、上記コードを<head>内に記述してください。

そうしたら、下記コードを<body>内に記述してください。

<select name="" id="js-select">
  <optgroup label="頭部パーツ">
    <option value="AH-J-124 BASHO">AH-J-124 BASHO</option>
    <option value="HD-011 MELANDER">HD-011 MELANDER</option>
    <option value="HD-033M VERRILL">HD-033M VERRILL</option>
    <option value="HD-012 MELANDER C3">HD-012 MELANDER C3</option>
    <option value="DF-HD-08 TIAN-QIANG">DF-HD-08 TIAN-QIANG</option>
    <option value="VP-44S">VP-44S</option>
    <option value="VP-44D">VP-44D</option>
    <option value="IB-C03H: HAL 826">IB-C03H: HAL 826</option>
  </optgroup>
  <optgroup label="二脚パーツ">
    <option value="AL-J-121 BASHO">AL-J-121 BASHO</option>
    <option value="LG-011 MELANDER">LG-011 MELANDER</option>
    <option value="LG-012 MELANDER C3">LG-012 MELANDER C3</option>
    <option value="DF-LG-08 TIAN-QIANG">DF-LG-08 TIAN-QIANG</option>
    <option value="VP-422">VP-422</option>
    <option value="NACHTREIHER/42E">NACHTREIHER/42E</option>
    <option value="2C-2000 CRAWLER">2C-2000 CRAWLER</option>
    <option value="IB-C03L: HAL 826">IB-C03L: HAL 826</option>
  </optgroup>
</select>

CSS例

.ss-option{
  background-color: #fff;
}
.ss-content .ss-list .ss-option{
  position: relative;
}
.ss-content .ss-list .ss-option::before{
  content: '';
  position: absolute;
  left: 10px;
  top: 11px;
  box-sizing: border-box;
  width: 4px;
  height: 4px;
  border: 4px solid transparent;
  border-left: 6px solid #12bb50;
  display: none;
}
.ss-content .ss-list .ss-option:hover{
  color:#333;
  background-color:#f6faf7;
}
.ss-content .ss-list .ss-option:hover::before{
  display: block;
}
.ss-content .ss-list .ss-option:not(.ss-disabled).ss-selected{
  color:#333;
  background-color:#e2f7ea;
}
.ss-content .ss-list .ss-option:not(.ss-disabled).ss-selected::before{
  display: block;
}

JavaScript例

new SlimSelect({
  select: '#js-select'
})

まとめ

今回もjQueryではなく、Vanilla.jsで実装してみました。

コピペしてガンガン使ってください!

WEB制作担当ソーヤ

ソーヤ

上毛印刷WEB制作担当
前職は東証プライム企業の本社WEB受託チームにてフロントエンドエンジニアを3年経験。


この記事に対するご意見・ご感想・ご質問等ありましたら、
ぜひ下記フォームにてお送りください。

    お名前必須
    メールアドレス必須
    お問い合わせ内容必須
    PAGE TOP