반응형
HOW?
1. class.controls에 있는 input 요소들 받아오기
2. 각 요소들에 change 이벤트가 일어날 때마다 eventHandler 함수 호출
3. eventHandler 함수에서 CSS 속성 변경
Solution
<script>
const inputs = document.querySelectorAll('.controls input');
const img = document.querySelector('img');
function handleupdate(){
const suffix = this.dataset.sizing || '';
img.style.setProperty(`--${this.name}`, this.value + suffix);
}
inputs.forEach( input => input.addEventListener('change', handleupdate));
inputs.forEach( input => input.addEventListener('mousemove', handleupdate));
</script>
<style>
:root {
--base: #ffc600;
--spacing: 10px;
--blur: 10px;
}
img {
padding: var(--spacing);
background: var(--base);
filter: blur(var(--blur));
}
/*
misc styles, nothing to do with CSS variables
*/
body {
text-align: center;
background: #193549;
color: white;
font-family: 'helvetica neue', sans-serif;
font-weight: 100;
font-size: 50px;
}
.controls {
margin-bottom: 50px;
}
input {
width: 100px;
}
</style>
TIL (Today I Llearned🎉)
- setProperty
: 사용방법 -> setProperty(css 속성, 값) - change 이벤트와 input 이벤트
: change는 input 요소에서 value가 변경되면, input은 input요소에서 값이 입력될 때마다!
반응형
'📍 Front-End > 🜸 JavaScript' 카테고리의 다른 글
[자바스크립트] forEach, for ... in, for ... of 차이점 (0) | 2021.07.17 |
---|---|
[JavaScript30/Day-4] Array Cardio Day 1 (0) | 2021.07.17 |
[JavaScript30/Day-2] JS and CSS Clock (0) | 2021.07.15 |
[JavaScript30/Day-1] Drum Kit (0) | 2021.07.14 |
[자바스크립트] 호이스팅이 뭘까 ,, (Hoisting!!!!!!!) (0) | 2021.07.13 |
댓글