this : ์ด๋ฒคํธ ๋ฐ์ํ ์๊ธฐ์์ ์์
()=> ํ์ดํํจ์ -> ์ด๋ฒคํธ.target(๋ฐ์์์)
(e)=> -> e.target // ํ์ดํ:target
forEach() => ์ฌ๋ฌ๊ฐ๋ฅผ ๊ฐ์ง ์์ํํ
์ธ ์ ์๋
function() -> this
<style>
.box {
width: 100px;
height: 100px;
border: 1px solid black;
margin: 30px;
}
.bgColor-red {
background-color: red;
}
</style>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<script>
const boxes = document.querySelectorAll('.boxes');
boxes.forEach( //boxes์ ๊ฐ๊ฐ item
(item)=> {
item.addEventListener('click', function(){
//this.style.backgroundColor = 'red';
this.classList.toggle('bgColor-red');
}); // on,off๊ธฐ๋ฅ !
}
)
for (let item of boxes) {
item.addEventListener('click', (e)=>{
e.target.style.backgroundColor = 'red';
});
}
</script>
=> ๐ป
=> ๊ฐ๊ฐ ๋ฐ์ค๋ฅผ ํด๋ฆญํ๋ฉด red๋ก ๋ฐ๋๊ณ ๋ ํด๋ฆญํ๋ฉด ์๋์ํ๋ก ๋์์จ๋ค!
๐ @ ์๊ฐ ๊ธฐ์ค : ms 1000 -> 1์ด
setTimeout(ํจ์, ์ง์ฐ์๊ฐms) : ์ผ์ ์๊ฐ ๋ค์ ํจ์ ์คํ
setInterval(ํจ์, ์๊ฐ๊ฐ๊ฒฉms) : ์ผ์ ์๊ฐ ๊ฐ๊ฒฉ์ผ๋ก ๊ณ์ ํจ์ ์คํ
clearInterval(๋์์ธํฐ๋ฒ) : Interval ๊ฑธ๋ฆฐ๊ฑธ ํด์
<style>
#box {
width: 100px;
height: 100px;
border: 1px solid black;
position: relative;
left: 0px;
}
</style>
<button id="btn1">timeout</button>
<button id="btn2">interval</button>
<button id="btn3">clearinterval</button>
<div id="box"></div>
<script>
const box = document.getElementById('box');
document.getElementById('btn1').addEventListener('click', ()=>{
setTimeout(()=>{
box.style.backgroundColor = 'red';
}, 1000); //btn1 ๋๋ฅด๋ฉด 1์ดํ์ box๊ฐ red๋ก ๋ฐ๋
});
let box_left = 0;
let boxMoveInterval; //๊ฐ์ด์ฐ์ด๋ ค๋ฉด ์ ์ญ๋ณ์๋ก ์ฐ์ฌ์ผํจ
document.getElementById('btn2').addEventListener('click', ()=>{
boxMoveInterval = setInterval(()=>{ // ์ด๋ค ์ธํฐ๋ฒ์ ํด๋ฆฌ์ดํ๋์ง ๋ช
์ํ๊ธฐ ์ํด ๋ณ์๋ก ๋ด์๋๋ค
box_left += 10;
box.style.left = box_left + "px"; //1์ด๋ง๋ค 10px์ฉ ์ผ์ชฝ์ผ๋ก ์ด๋
}, 1000);
});
document.getElementById('btn3').addEventListener('click', ()=> {
clearInterval(boxMoveInterval); //ํด๋ฆฌ์ด ๋ฒํผ์ ๋๋ ์๋ ๋ฉ์ถฐ์ง๊ฒ๋!
});
</script>
=> ๐ป
=> timeout์ ๋๋ฅด๋ฉด 1์ด ํ์ ๋ฐ์ค๊ฐ red๋ก ๋ฐ๋๊ณ
=> ๐ป
=> interval์ ๋๋ฅด๋ฉด 1์ด๋ง๋ค ์ผ์ชฝ์ผ๋ก 10px์ฉ ์ด๋
=> ๐ป
=> clearInterval์ ๋๋ฅด๋ฉด ์ ์ง!
๐จ ์ธํฐ๋ฒ ๋๋ฅผ๋๋ง๋ค ์ธํฐ๋ฒ์ด ์์์ ธ๊ฐ๋๊ฑฐ์ผ! ์ค๋ณต์คํ์ด ๋๋ค
๊ทธ๋์ ์ธํฐ๋ฒ ์์ฑ ์ ์ ๊ธฐ์กด ์ธํฐ๋ฒ ํด๋ฆฌ์ด๋ฅผ ํด์ค์ผ ํ๋ค
!
let box_left = 0;
let boxMoveInterval; //๊ฐ์ด์ฐ์ด๋ ค๋ฉด ์ ์ญ๋ณ์๋ก ์ฐ์ฌ์ผํจ
document.getElementById('btn2').addEventListener('click', ()=>{
๐จclearInterval(boxMoveInterval);๐จ
boxMoveInterval = setInterval(()=>{ // ์ด๋ค ์ธํฐ๋ฒ์ ํด๋ฆฌ์ดํ๋์ง ๋ช
์ํ๊ธฐ ์ํด ๋ณ์๋ก ๋ด์๋๋ค
box_left += 10;
box.style.left = box_left + "px"; //1์ด๋ง๋ค 10px์ฉ ์ผ์ชฝ์ผ๋ก ์ด๋
}, 1000);
});