3.8 KiB
id, title, challengeType, forumTopicId, dashedName
id | title | challengeType | forumTopicId | dashedName |
---|---|---|---|---|
587d7fa7367417b2b2512bc7 | Зміна стилів на основі даних | 6 | 301479 | change-styles-based-on-data |
--description--
Про візуалізацію та подання даних можна дізнатися за допомогою D3. Ймовірно, що на основі даних ви захочете змінити стиль елементів. Для того, щоб змінити стиль для різних елементів, ви можете використати функцію зворотного зв'язку в методі style()
.
Наприклад, ви можливо маєте бажання зафарбувати точку даних у синій колір, якщо її значення менше ніж 20, в іншому випадку - у червоний. Ви можете використати функцію зворотного зв'язку в методі style()
і включити умовну логіку. Для відображення точки даних, функція зворотного зв'язку використовує параметр d
:
selection.style("color", (d) => {
});
При використанні методу style()
він не обмежується лише встановленням color
, адже він може добре використовуватися і з іншими властивостями CSS.
--instructions--
Щоб встановити color
елементів h2
умовно, потрібно додати метод style()
до коду в редакторі. Запишіть функцію зворотного зв'язку, щоб вона повертала червоний колір, якщо значення менше 20, в іншому випадку - зелений.
Note: Ви можете використовувати if-else логіку або тернарний оператор.
--hints--
Перший h2
повинен мати червоний color
.
assert($('h2').eq(0).css('color') == 'rgb(255, 0, 0)');
Другий h2
повинен мати зелений color
.
assert($('h2').eq(1).css('color') == 'rgb(0, 128, 0)');
Третій h2
повинен мати зелений color
.
assert($('h2').eq(2).css('color') == 'rgb(0, 128, 0)');
Четвертий h2
повинен мати червоний color
.
assert($('h2').eq(3).css('color') == 'rgb(255, 0, 0)');
П'ятий h2
повинен мати зелений color
.
assert($('h2').eq(4).css('color') == 'rgb(0, 128, 0)');
Шостий h2
повинен мати червоний color
.
assert($('h2').eq(5).css('color') == 'rgb(255, 0, 0)');
Сьомий h2
повинен мати зелений color
.
assert($('h2').eq(6).css('color') == 'rgb(0, 128, 0)');
Восьмий h2
повинен мати червоний color
.
assert($('h2').eq(7).css('color') == 'rgb(255, 0, 0)');
Дев'ятий h2
повинен мати червоний color
.
assert($('h2').eq(8).css('color') == 'rgb(255, 0, 0)');
--seed--
--seed-contents--
<body>
<script>
const dataset = [12, 31, 22, 17, 25, 18, 29, 14, 9];
d3.select("body").selectAll("h2")
.data(dataset)
.enter()
.append("h2")
.text((d) => (d + " USD"))
// Add your code below this line
// Add your code above this line
</script>
</body>
--solutions--
<body>
<script>
const dataset = [12, 31, 22, 17, 25, 18, 29, 14, 9];
d3.select("body").selectAll("h2")
.data(dataset)
.enter()
.append("h2")
.text((d) => (d + " USD"))
.style("color", (d) => d < 20 ? "red" : "green")
</script>
</body>