-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathclamp.js
30 lines (30 loc) · 860 Bytes
/
clamp.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
function clamp ( value, min, max, callbackOnClamp ) {
if ( max < min ) {
if ( value < max ) {
if ( typeof callbackOnClamp === 'function' ) {
callbackOnClamp( value, max );
}
value = max;
}
else if ( value > min ) {
if ( typeof callbackOnClamp === 'function' ) {
callbackOnClamp( value, min );
}
value = min;
}
} else {
if ( value > max ) {
if ( typeof callbackOnClamp === 'function' ) {
callbackOnClamp( value, max );
}
value = max;
}
else if ( value < min ) {
if ( typeof callbackOnClamp === 'function' ) {
callbackOnClamp(value, min);
}
value = min;
}
}
return value;
}