47 lines
1.3 KiB
JavaScript
47 lines
1.3 KiB
JavaScript
export function mkslider(title, min, max, step, val, callback) {
|
|
const gui = document.createElement('div');
|
|
gui.classList.add('slider');
|
|
const label = document.createElement('label');
|
|
const input = document.createElement('input');
|
|
const value = document.createElement('span');
|
|
input.setAttribute('type', 'range');
|
|
input.setAttribute('min', min);
|
|
input.setAttribute('max', max);
|
|
input.setAttribute('step', step);
|
|
input.setAttribute('value', val);
|
|
label.innerText = title;
|
|
value.innerText = val;
|
|
gui.appendChild(label);
|
|
gui.appendChild(input);
|
|
gui.appendChild(value);
|
|
input.addEventListener('input', function() {
|
|
callback(parseFloat(input.value));
|
|
value.innerText = input.value;
|
|
})
|
|
return gui;
|
|
}
|
|
|
|
export function mkcheckbox(title, val, callback) {
|
|
const gui = document.createElement('div');
|
|
gui.classList.add('checkbox');
|
|
const label = document.createElement('label');
|
|
const input = document.createElement('input');
|
|
input.setAttribute('type', 'checkbox');
|
|
if (val) {
|
|
input.setAttribute('checked', 'checked');
|
|
}
|
|
label.innerText = title;
|
|
gui.appendChild(label);
|
|
gui.appendChild(input);
|
|
input.addEventListener('input', function() {
|
|
callback(input.checked);
|
|
});
|
|
return gui;
|
|
}
|
|
|
|
export function mkspacer() {
|
|
const gui = document.createElement('div');
|
|
gui.classList.add('spacer');
|
|
return gui;
|
|
}
|