2
2

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.

noUiSliderで好い感じに日付を範囲選択出来るようにしてみた

Last updated at Posted at 2020-12-29

フロントエンドで日付の範囲選択を簡単にするためにnoUiSliderを導入しましたが、デザインがいまいち好みでなかったので追加でCSSを設定してみました。

概要図

無題.png

noUiSliserを導入

noUiSliderはこちらのサイトから導入しました。 (Version 14.6.3)

日付に対応

exampleに日付で動くサンプルがあるので、こちらを参考にしました。

※オブジェクト作成部抜粋
noUiSlider.create(slider,{
    start: [range_s.getTime(), range_e.getTime()],
    behaviour: 'drag',
    connect: true,
    step: 24 * 60 * 60 * 1000,
    orientation: 'horizontal', // 'horizontal' or 'vertical'
    tooltips: [tooltipsFommatter, tooltipsFommatter],
    range: {
        'min': new Date('2020/1/1').getTime(),
        'max': new Date('2020/12/31').getTime()
    },
});

スタイルの変更

次のCSSを設定しました。

nouislider_wrapper.css
.noUi-target {
  border-radius: 0;
}
.noUi-horizontal {
  height: 5px;
}
.noUi-vertical {
  width: 5px;
}
.noUi-horizontal .noUi-handle,
.noUi-vertical .noUi-handle {
  width: 15px;
  height: 15px;
  border-radius: 50%;
  box-shadow: none;
  background-color: #26A69A;
  outline: none;
  transition:
    width .2s cubic-bezier(0.215, 0.610, 0.355, 1.000),
    height .2s cubic-bezier(0.215, 0.610, 0.355, 1.000),
    left .2s cubic-bezier(0.215, 0.610, 0.355, 1.000),
    top .2s cubic-bezier(0.215, 0.610, 0.355, 1.000);
}
.noUi-handle:before {
  content: none;
}
.noUi-handle:after {
  content: none;
}
.noUi-active.noUi-handle {
  width: 5px;
  height: 5px;
}
.noUi-horizontal .noUi-handle {
  transform: translate(-15px, 1px);
}
.noUi-horizontal .noUi-active.noUi-handle {
  transform: translate(-15px, 5px);
}
.noUi-vertical .noUi-handle {
  transform: translate(1px, 15px);
}
.noUi-vertical .noUi-active.noUi-handle {
  transform: translate(-5px, 15px);
}
.noUi-target .noUi-tooltip {
  position: absolute;
  height: 30px;
  width: 30px;
  top: -17px;
  left: -2px;
  border: none;
  background-color: #26A69A;
  border-radius: 50%;
  transition:
    border-radius .25s cubic-bezier(0.215, 0.610, 0.355, 1.000),
    transform .25s cubic-bezier(0.215, 0.610, 0.355, 1.000);
  transform: scale(.75) rotate(-45deg);
  transform-origin: 50% 100%;
}
.noUi-horizontal .noUi-active .noUi-tooltip {
  border-radius: 15px 15px 15px 0;
  transform: rotate(-45deg) translate(24px, -24px);
}
.noUi-vertical .noUi-active .noUi-tooltip {
  border-radius: 15px 15px 15px 0;
  transform: rotate(-90deg) translate(35px, -20px);
}

デモ

Codepen

See the Pen noUiSliderDateSliderSample by genbu-jp (@genbu-jp) on CodePen.

2
2
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
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?