1.7.0 • Published 2 years ago

vue-knob-control v1.7.0

Weekly downloads
392
License
MIT
Repository
github
Last release
2 years ago

vue-knob-control

A rotary knob control for Vue.js

Install

npm install vue-knob-control -S

Usage

import Vue from 'vue'
import KnobControl from 'vue-knob-control'

Vue.use(KnobControl)

Examples

Most basic usage:

<knob-control v-model="someValue"></knob-control>

Specifying minimum and maximum values, note that the value arc is drawn from the calculated zero point. We have also made the arc appear thinner:

<knob-control
  :min="-12"
  :max="12"
  :stroke-width="8"
  v-model="semitone"
></knob-control>

Changing size and colors:

<knob-control
  :min="-64"
  :max="63"
  :size="75"
  primary-color="#E844C3"
  secondary-color="#E7B6DC"
  text-color="#E844C3"
  v-model="detune"
></knob-control>

You can also pass a function to alter the value text displayed:

toWord: function(val) {
    const map = {
        0: 'zero',
        1: 'one',
        2: 'two',
        3: 'three',
        4: 'four',
    }
    return map[val];
}
<knob-control
  :min="0"
  :max="4"
  :value-display-function="toWord"
  v-model="val"
></knob-control>

Responsive

Set the component responsive.

Size property is always available, be careful if size is more than 100, size is expressed in % in this mode

<knob-control
    :responsive="true"
</knob-control>

Animation:

Disabled by default

animated true|false This will disable/enable knob animation but not value one.

animateValue true|false Same as animation expect for the value.

animationDuration integer, in milliseconds set the duration of both animation.

animationFunction string CSS animation function, all CSS animations are available (eg: linear, ease-in, ease-out, ...).

Examples

Only animate knob itself

<knob-control
    :animation="{
        animated: true
    }"
</knob-control>

Only animate knob value

<knob-control
    :animation="{
        animateValue: true
    }"
</knob-control>

animated and animateValue can be set at the same time

This animation use CSS linear function during 5 sec

<knob-control
    :animation="{
        animated: true,
        animateValue: true,
        animationDuration: '5000',
        animationFunction: 'linear'
    }"
</knob-control>

animationDuration should be expressed in ms (you can use multiplication if you prefer eg: "5 * 1000")

Properties

The only required property is value.

OptionTypeDescriptionDefault
valueNumberUse the v-model attribute to set the value of the controlnone
maxNumberMaximum value of the control100
minNumberMinimum value of the control0
stepSizeNumberSmallest increment the value can change by1
disabledBooleanSet to true to disable the knobfalse
readOnlyBooleanSet to true to disable interaction with the knob while showing its valuefalse
sizeNumberVisual size of the control in px (or % if responsive is true)100
primaryColorStringColor of the value arc#409eff
secondaryColorStringColor of the rest of the control#dcdfe6
textColorStringColor of the value text#000000
strokeWidthNumberThickness of the arcs17
valueDisplayFunctionFunctionCustom function to alter the display text(v) => v
responsiveBooleanUse % instead of pxfalse
animationObjectOptional animation config object: { animated: false, animateValue: false, animationDuration: 2000 (in ms), animationFunction: 'ease-in-out' }null
1.7.0

2 years ago

1.6.0

5 years ago

1.5.0

5 years ago

1.4.1

5 years ago

1.4.0

5 years ago

1.3.1

5 years ago

1.3.0

5 years ago

1.2.1

6 years ago

1.2.0

6 years ago

1.1.0

6 years ago

1.0.0

6 years ago

0.5.0

6 years ago