-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathparam.js
50 lines (44 loc) · 1.17 KB
/
param.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
;(function(global) {
param.index = {};
param.containerId = 'param-container';
global.param = param;
function param(id, initial, min, max) {
var slider = param.index[id]
if (!slider) {
var current = initial;
var container = document.getElementById(param.containerId);
var div = document.createElement('div');
div.innerHTML = '<div id="param-'+id+
'" class="dragdealer rounded-cornered">'+
'<div class="red-bar handle">'+id+'</div></div>'
container.appendChild(div);
if (initial === undefined) {
initial = 0;
}
var order = Math.floor(log10(Math.max(1, Math.abs(initial))));
var limit = Math.pow(10, order + 1);
if (min === undefined) {
min = -limit;
}
if (max === undefined) {
max = limit;
}
var value = (initial - min) / (max - min);
console.log(value);
slider = new Dragdealer('param-'+id, {
x: value,
animationCallback: function(x) {
this.currentX = x;
}
});
slider.getCurrent = function() {
return slider.currentX * (max - min) + min;
}
param.index[id] = slider;
}
return slider.getCurrent();
}
function log10(x) {
return Math.log(x) / Math.LN10;
}
})(this);