08.10.2021, 22:15
|
Новичок на форуме
|
|
Регистрация: 08.10.2021
Сообщений: 3
|
|
Динамическая смена цвета DIV
Помогите, пожалуйста, с вопросом. Вообще не понимаю как сделать. Не силен в JS.
Есть:
1. <div data-var="Sat1" class="sat wind">например значение 93.5</div> и
2. <div data-var="Con1" class="o2 wind">например значение 158.</div>. в них раз в секунду приходят числовые значения. Так же приходят по три значения "R_test", "G_test", "B_test" от 0 до 255.
<div data-var="R_Test" class="R"></div>
<div data-var="G_Test" class="G"></div>
<div data-var="B_Test" class="B"></div>
Нужно:
Закрасить эти DIV`ы 1 и 2 используя приходящие значения RGB-цветов.
Или может проще перевод из RGB в HEX и им уже закрашивать. Даже не знаю.
Сайта нет. Все на локальном сервере. Учусь только.
Заранее огромное спасибо.
|
|
08.10.2021, 22:54
|
|
CacheVar
|
|
Регистрация: 19.08.2010
Сообщений: 14,228
|
|
Сообщение от wave2013
|
Или может проще перевод из RGB в HEX и им уже закрашивать.
|
Если у тебя уже есть цифры для РГБ - их и используй...
obj.style.backgroundColor = 'rgb(' + r + ',' + g + ',' + b + ');'
Сообщение от wave2013
|
Не силен в JS.
|
Значит придется осваивать или бросать эту затею.
|
|
09.10.2021, 08:26
|
Новичок на форуме
|
|
Регистрация: 08.10.2021
Сообщений: 3
|
|
Сообщение от ksa
|
Значит придется осваивать или бросать эту затею.
|
Да осваивать начал. Но чтобы до этого добраться, нужно минимум полгода учить, а попробовать возможности хотел сейчас, поэтому попросил помощи.
Скажите, пожалуйста, как будет выглядеть полная конструкция скрипта.
Спасибо!
|
|
09.10.2021, 08:35
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,126
|
|
Сообщение от wave2013
|
как будет выглядеть полная конструкция скрипта.
|
Сообщение от wave2013
|
приходят числовые значения.
|
слишком растяжимое определение, всё что можно изобразить в коде, вам уже показали, об остальном можно только гадать, что у вас и как.
|
|
09.10.2021, 09:49
|
Новичок на форуме
|
|
Регистрация: 08.10.2021
Сообщений: 3
|
|
Сообщение от рони
|
слишком растяжимое определение, всё что можно изобразить в коде, вам уже показали, об остальном можно только гадать, что у вас и как.
|
Записал экран
Нужно, чтобы цвет фона DIV (class="indiv") в котором ввожу цифру принимал RGB-цвет, записывая значения которые выводятся в классах "R", "G", "B", background: rgb(..., ..., ...); .
Спасибо!
Последний раз редактировалось wave2013, 09.10.2021 в 09:55.
|
|
09.10.2021, 15:24
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,126
|
|
number to rgb
wave2013,
<!DOCTYPE html>
<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
<style type="text/css">
[data-var]:after {
content: attr(data-var);
}
.color {
height: 100px;
width: 100px;
background-color: var(--color, #fff)
}
</style>
</head>
<body>
<input type="number" min="0" step="1" value="16777215">
<div data-var="r : 255" class="r"></div>
<div data-var="g : 255" class="g"></div>
<div data-var="b : 255" class="b"></div>
<div class="color"></div>
<script>
window.addEventListener('DOMContentLoaded', function() {
let color = document.querySelector('.color');
document.querySelector('input').addEventListener('input', function() {
let c = +this.value,
b = c / 65536 | 0,
g = (c - b * 65536) / 256 | 0,
r = c - b * 65536 - g * 256;
let components = {
r,
g,
b
}
for (let k in components) document.querySelector(`.${k}`).dataset.var = `${k} : ${components[k]}`
color.style.setProperty("--color", `rgb(${r},${g},${b})`);
});
});
</script>
</body>
</html>
|
|
|
|