Touch-enabled Knob Input With JavaScript – knob-input
| AUTHOR: | jhnsnc |
|---|---|
| VIEWS TOTAL: | 2,336 views |
| OFFICIAL PAGE: | Go to website |
| LAST UPDATE: | October 11, 2018 |
| LICENSE: | MIT |
Preview:

Description:
knob-input is a vanilla JavaScript library to render accessible, touch-enabled, highly customizable knob/dial controls just like the range input.
Basic usage:
Install the knob-input with NPM:
# NPM $ npm install knob-input --save
Or download the zip and insert the CSS and JavaScript files into the document.
<link rel="stylesheet" href="dist/knob-input.css"> <script src="dist/knob-input.js"></script>
Create the html for the knob input.
<div class="knob-input"> <div class="knob-input__visual"></div> </div>
Initialize the knob input and done.
var myContainer = document.querySelector('.knob-input');
var myKnobInput = new KnobInput(myContainer);Configuration options with default values.
var myKnobInput = new KnobInput(myKnobContainer,{
// The minimum input value.
min: 0,
// The maximum input value.
max: 1,
// The step amount for value changes.
step: '',
// The initial value of the input.
initial: .5,
// The amount of resistance to value change on mouse/touch drag events.
dragResistance: 300,
// The amount of resistance to value change on mouse wheel scroll.
wheelResistance: 4000,
// Callback that sets minRotation to 0 and maxRotation to 360
// Callback that allows for customization of the visual context by setting properties via this.
// Note that this.element and this.transformProperty will already have values.
// Useful for caching DOM references, calculations, etc for use in the updateVisuals callback.
visualContext: null,
// Callback that updates visual element rotation based on minRotation/maxRotation
// Custom callback for updating the input visuals based on changes to the input value.
// Has access to the visual context via this (e.g. this.element).
updateVisuals: null
});API methods.
// retrieves current value
var currentValue = myKnobInput;
// sets a new value
myKnobInput.value = 0.5;
// watches for changes
myKnobInput.addEventListener('change', function(evt) {
console.log(evt.target.value);
});Event handlers.
myKnobInput.addEventListener('change', function(evt) {
console.log('I changed value:', evt.target.value);
});
myKnobInput.addEventListener('focus', function(evt) {
console.log('I now have keyboard focus');
});
myKnobInput.addEventListener('blur', function(evt) {
console.log('I lost keyboard focus');
});Changelog:
10/11/2018
- v0.2.5
