-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathjavascript.js
More file actions
54 lines (33 loc) · 1.61 KB
/
Copy pathjavascript.js
File metadata and controls
54 lines (33 loc) · 1.61 KB
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
51
52
53
54
let parentSlider = document.querySelector('.slide-wrapper')
let slider = document.querySelector('.slider');
let button = document.querySelector('.range');
let max = document.querySelector('#max');
let min = document.querySelector('#min');
function moveButton (e) {
var pointA = parentSlider.offsetLeft;
var pointB = slider.offsetLeft;
let position = parentSlider.offsetLeft + slider.offsetLeft + slider.clientLeft;
button.style.left = `${e.clientX-position}px`;
}
slider.addEventListener('click', moveButton);
button.onmousedown = function (e) {
let positionX = event.clientX - button.getBoundingClientRect().left;
document.addEventListener('mousemove', onMouseMove);
document.addEventListener('mouseup', onMouseUp);
function onMouseMove (e) {
let newLeft = Math.min(Math.max(event.clientX - positionX - slider.getBoundingClientRect().left, 0), slider.clientWidth);
button.style.left = newLeft + 'px';
let max1 = parseInt(max.value);
let min1= parseInt(min.value);
let position = parentSlider.offsetLeft + slider.offsetLeft + slider.clientLeft;
let positionB = e.clientX-position;
let procent = (positionB / slider.clientWidth) * (max1 - min1) + min1;
console.log(slider.clientWidth);
let title = document.querySelector('#title');
title.innerHTML = `Number: ${Math.trunc(procent)}.`;
}
function onMouseUp() {
document.removeEventListener('mouseup', onMouseUp);
document.removeEventListener('mousemove', onMouseMove);
}
};