일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- useAppDispatch
- 무한 스크롤
- RTK Query
- 이분 검색
- 인터섹션
- 공변성
- 타입 좁히기
- ESlint
- recoil
- 결정 알고리즘
- dfs
- autosize
- app router
- 반공변성
- 호이스팅
- tailwind
- 리터럴 타입
- Jest
- async/await
- 태그된 유니온
- map
- Cypress
- webpack
- Promise
- 투포인터
- SSR
- React
- CORS
- CI/CD
- TS
Archives
- Today
- Total
짧은코딩
js) 이벤트 및 if문 활용 본문
반응형
console.dir()에서 on이 앞에 붙어있는 것은 이벤트이다.
const title = document.querySelector("div.hello:first-child h1");
function handleMouseEnter(){
console.log("mouse is here!");
}
title.addEventListener("mouseenter", handleMouseEnter)
마우스 위로 올라가면 콘솔에 뜬다.
const title = document.querySelector("div.hello:first-child h1");
function handleTitleClick() {
title.style.color = "blue";
}
function handleMouseEnter(){
title.innerText = "Mouse is here!"
}
function handleMouseLeave(){
title.innerText = "Mouse is gone!"
}
//title.addEventListener("click", handleTitleClick) 아래 처럼도 표현 가능
title.onclick = handleTitleClick;
title.addEventListener("click", handleMouseLeave)
title.addEventListener("mouseenter", handleMouseEnter)
마우스 위에 올리면 here 내리면 gone 클릭하면 색 블루
function handleWindoResize(){
document.body.style.backgroundColor = "tomato";
}
window.addEventListener("resize", handleWindoResize)
이렇게 하고 f12 누르면 배경 토마토색
function handleWindowCopy(){
alert("copier")
}
window.addEventListener("copy", handleWindowCopy)
복사하면 copier라고 뜬다
const h1 = document.querySelector("div.hello:first-child h1");
function handleTitleClick() {
const currentColor = h1.style.color;
let newColor;
if (currentColor === "blue"){
newColor = "tomato";
} else{
newColor = "blue";
}
h1.style.color = newColor;
}
h1.addEventListener("click", handleTitleClick);
let로 업데이트 할 수 있게해준다. 그리고 h1.style.color = newColor로 해줘서 색을 변경해준다.
.active{
color: tomato;
}
const h1 = document.querySelector("div.hello:first-child h1");
function handleTitleClick() {
h1.className = "active";
}
h1.addEventListener("click", handleTitleClick);
이렇게하면 html css js 서로 연결
function handleTitleClick() {
if (h1.className === "active"){
h1.className = ""
} else{
h1.className = "active"
}
}
이렇게 바꿔줘도 위와 같은 기능
function handleTitleClick() {
const clickedClass = "clicked"
if (h1.className === clickedClass){
h1.className = ""
} else{
h1.className = clickedClass
}
}
이렇게 해줘야 에러를 줄일 수 있다.
const h1 = document.querySelector("div.hello:first-child h1");
function handleTitleClick() {
const clickedClass = "clicked"
if (h1.classList.contains(clickedClass)){
h1.classList.remove(clickedClass);
} else{
h1.classList.add(clickedClass)
}
}
h1.addEventListener("click", handleTitleClick);
이렇게 해주면 이전에 있는 className도 보존이 가능하다
const h1 = document.querySelector("div.hello:first-child h1");
function handleTitleClick() {
h1.classList.toggle("clicked")
}
h1.addEventListener("click", handleTitleClick);
toggle는 클래스 이름에 clicked이 있으면 제거해주고 없으면 추가해준다.
반응형
'노마드 코더 > 바닐라 JS로 크롬 앱 만들기' 카테고리의 다른 글
js) CLOCK (1) | 2022.04.28 |
---|---|
js) LOGIN (0) | 2022.04.16 |
js) 이벤트 및 preventDefault() 함수 사용 (0) | 2022.04.08 |
js) 여러 함수 및 dir, document (0) | 2022.04.05 |
js) JS 변수, 함수 등 기본 개념 정리 (0) | 2022.04.04 |
Comments