123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- function Control(
- el,
- {
- value = 10,
- min = 0,
- max = 100,
- minAngle = -90,
- maxAngle = 90,
- wheelSpeed = 0.1,
- step = 1,
- } = {}
- ) {
- const img = document.createElement("img");
- img.src = "1@3x.png";
- el.append(img);
- const ratio = (maxAngle - minAngle) / (max - min); //цена единицы value в градусах
- const getAngle = () => (value - min) * ratio + minAngle; //подсчитали отступ в единицах, пересчитали в градусы и прибавили к стартовому углу
- this.setValue = (newValue) => {
- if (newValue < min) {
- newValue = min;
- }
- if (newValue > max) {
- newValue = max;
- }
- value = newValue;
- if (typeof this.onchange === "function") {
- this.onchange(value);
- }
- img.style.transform = `rotate(${getAngle()}deg)`;
- };
- this.getValue = () => value;
- img.onmousewheel = (e) => {
- const { deltaY } = e;
- e.preventDefault();
- this.setValue(value + deltaY * wheelSpeed);
- };
- img.onclick = (e) => {
- const { layerX } = e;
- console.log(e, layerX);
- if (layerX > img.width / 2) this.setValue(value + step);
- else this.setValue(value - step);
- };
- this.setValue(value);
- };
- let a, b, c;
- function setRGB() {
- a = red.getValue();
- b = green.getValue();
- c = blue.getValue();
- let rgbDone = (div.style.background = `rgb(${a}, ${b}, ${c})`);
- return console.log(rgbDone);
- };
- const red = new Control(colorbox, { min: 0, max: 255 });
- red.onchange = setRGB;
- const green = new Control(colorbox, { min: 0, max: 255 });
- green.onchange = setRGB;
- const blue = new Control(colorbox, { min: 0, max: 255 });
- blue.onchange = setRGB;
- const volumeControl = new Control(colorbox, { value: 50 });
- volumeControl.onchange = (value) => {
- audio.volume = value / 100;
- console.log("ON CHANGE", value);
- };
- const audio = document.createElement("audio");
- audio.setAttribute("controls", "");
- audio.src = "Рингтон Доброго Вечора Ми З України - Probass X Hardi - mp36ka_net.mp3"; // путь к файлу могу не правильно указать, путаюсь
- audio.style.marginLeft = "200px";
- document.body.append(audio);
- const div = document.createElement("div");
- div.style.width = "725px";
- div.style.height = "800px";
- div.style.position = "relative";
- div.style.bottom = "800px"
- div.style.zIndex = "-1"
- document.body.append(div);
|