vue-slider-component を使ってみる
参考
インストール
インストールする。
npm だけ記載しておきます。
npm install vue-slider-component --save
基本設定
インポートします。
import VueSlider from 'vue-slider-component'
import 'vue-slider-component/theme/default.css'
コンポーネントに登録します。
export default {
components: {
VueSlider
}
...
スライダーの値にバインドする値をプロパティに定義します。
export default {
data() {
return {
value: [1],
}
}
...
スライダーを設置します。
<div class="slider-wrapper">
<vue-slider v-model="value"></vue-slider>
</div>
スロットを増やす
2個にするには配列に値を2個指定してあげます。
export default {
data() {
return {
value: [1, 50],
}
}
...
吹き出しの値を変更する
吹き出しに表示される内容が配列の値のみになっているので、「%」を付与してみます。
<vue-slider
v-model="value"
:tooltip-formatter="formatter"
></vue-slider>
export default {
data() {
return {
value: [1, 100],
formatter: '{value}%',
}
}
...
吹き出しスロットのレンジを表示する
a ~ b 円 と言った吹き出しを表示してみます。
<vue-slider v-model="value" tooltip="none" :process="process" :min-range="10">
<template v-slot:process="{ start, end, style, index }">
<div class="vue-slider-process" :style="style">
<div :class="[
'merge-tooltip',
'vue-slider-dot-tooltip-inner',
'vue-slider-dot-tooltip-inner-top',
]">
{{ value[index] }} 円 ~ {{ value[index + 1] }} 円
</div>
</div>
</template>
</vue-slider>
data() {
return {
value: [0, 100],
process: val => [
[val[0], val[1]],
],
}
...
.merge-tooltip {
position: absolute;
left: 50%;
bottom: 100%;
transform: translate(-50%, -15px);
}
値を刻みにする場合は interval を指定します。
例えば 10 刻みにしたい場合は下のように指定します。
<vue-slider v-model="value" tooltip="none" :process="process" :min-range="10" :interval="10">
他にも色々デザインを変えたりイベントも設定できるようです。
ディスカッション
コメント一覧
まだ、コメントがありません