mirror of
https://github.com/pvvx/RTL00_WEB.git
synced 2026-07-05 02:45:38 +00:00
first commit
This commit is contained in:
commit
fa343db334
154 changed files with 18186 additions and 0 deletions
97
WEBFiles/slider.js
Normal file
97
WEBFiles/slider.js
Normal file
|
|
@ -0,0 +1,97 @@
|
|||
function slider(elemId, sliderWidth, range1, range2, step) {
|
||||
var knobWidth = 17;
|
||||
var knobHeight = 21;
|
||||
var sliderHeight = 21;
|
||||
var offsX, tmp;
|
||||
var d = document;
|
||||
var isIE = d.all || window.opera;
|
||||
var point = (sliderWidth - knobWidth - 3) / (range2 - range1);
|
||||
var slider = d.createElement('DIV');
|
||||
slider.id = elemId + '_slider';
|
||||
slider.className = 'slider';
|
||||
d.getElementById(elemId).appendChild(slider);
|
||||
var knob = d.createElement('DIV');
|
||||
knob.id = elemId + '_knob';
|
||||
knob.className = 'knob';
|
||||
slider.appendChild(knob);
|
||||
knob.style.left = 0;
|
||||
knob.style.width = knobWidth + 'px';
|
||||
knob.style.height = knobHeight + 'px';
|
||||
slider.style.width = sliderWidth + 'px';
|
||||
slider.style.height = sliderHeight + 'px';
|
||||
var sliderOffset = slider.offsetLeft;
|
||||
tmp = slider.offsetParent;
|
||||
while (tmp.tagName != 'BODY') {
|
||||
sliderOffset += tmp.offsetLeft;
|
||||
tmp = tmp.offsetParent
|
||||
}
|
||||
if (isIE) {
|
||||
knob.onmousedown = startCoord;
|
||||
slider.onclick = sliderClick;
|
||||
knob.onmouseup = endCoord;
|
||||
slider.onmouseup = endCoord
|
||||
} else {
|
||||
knob.addEventListener("mousedown", startCoord, true);
|
||||
slider.addEventListener("click", sliderClick, true);
|
||||
knob.addEventListener("mouseup", endCoord, true);
|
||||
slider.addEventListener("mouseup", endCoord, true)
|
||||
}
|
||||
function setValue(x) {
|
||||
if (x < 0)
|
||||
knob.style.left = 0;
|
||||
else if (x > sliderWidth - knobWidth - 3)
|
||||
knob.style.left = (sliderWidth - 3 - knobWidth) + 'px';
|
||||
else {
|
||||
if (step == 0)
|
||||
knob.style.left = x + 'px';
|
||||
else
|
||||
knob.style.left = Math.round(x / (step * point)) * step * point
|
||||
+ 'px'
|
||||
}
|
||||
NewTimeScale(getValue())
|
||||
}
|
||||
function setValue2(x) {
|
||||
if (x < range1 || x > range2)
|
||||
alert('Value is not included into a slider range!');
|
||||
else
|
||||
setValue((x - range1) * point);
|
||||
NewTimeScale(getValue())
|
||||
}
|
||||
function getValue() {
|
||||
return Math.round(parseInt(knob.style.left) / point) + range1
|
||||
}
|
||||
function sliderClick(e) {
|
||||
var x;
|
||||
if (isIE) {
|
||||
if (event.srcElement != slider)
|
||||
return;
|
||||
x = event.offsetX - Math.round(knobWidth / 2)
|
||||
} else
|
||||
x = e.pageX - sliderOffset - knobWidth / 2;
|
||||
setValue(x)
|
||||
}
|
||||
function startCoord(e) {
|
||||
if (isIE) {
|
||||
offsX = event.clientX - parseInt(knob.style.left);
|
||||
slider.onmousemove = mov
|
||||
} else {
|
||||
slider.addEventListener("mousemove", mov, true)
|
||||
}
|
||||
}
|
||||
function mov(e) {
|
||||
var x;
|
||||
if (isIE)
|
||||
x = event.clientX - offsX;
|
||||
else
|
||||
x = e.pageX - sliderOffset - knobWidth / 2;
|
||||
setValue(x)
|
||||
}
|
||||
function endCoord() {
|
||||
if (isIE)
|
||||
slider.onmousemove = null;
|
||||
else
|
||||
slider.removeEventListener("mousemove", mov, true)
|
||||
}
|
||||
this.setValue = setValue2;
|
||||
this.getValue = getValue
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue