일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 할만한데?
- margin 0 auto
- border radius
- 라매개발자
- calc()
- 나도코딩
- 생활코딩
- 크롬웹
- 생활코딩 WEB2-JavaScript
- 단계별로 풀어보기
- li 태그
- box-sizing: border-box
- max-width
- 노마드 코더
- git 버전관리
- 드림코딩
- HTML
- 백준 자바스크립트
- error: ENOENT: no such file or directory
- 백준
- button:focus cursor: pointer; outline: none;
- :root
- nav태그
- 코딩테스트
- git
- 나도코딩 파이썬
- Pull
- WEB2-JavaScript
- 백준 정리
- html 끝
- Today
- Total
코딩응애의 개발블로그
노마드 코더 - 바닐라 JS로 크롬 앱 만들기(#3.0 ~ #3.5) 본문
#3.0 The Document Object
HTML의 element 들은 JS를 통해 변경하고 읽을 수 있다.
document -> HTML을 가리키는 객체이다. document가 JS 관점으로 HTML을 보여준다. 모든것들은 document로부터 시작한다. 왜나면 우리의 웹사이트를 의미하기 때문이다.
#3.1 HTML in Javascript
HTML에 항목들을 가지고 와서 JS를 통해 항목들을 변경할 수 있다.
document.getElementById() -> 괄호안에 id를 적으면 예를 들어서 html에 id가 title인 element가 있다고 가정하고
document.getElementById("title") 이렇게 적으면 id로 element를 가져올 수 있는것이다.
const test = document.getElementById('title');
console.dir() -> console.log 와 다른점이 무엇인지 구글링을 해보았는데 그냥 쉽게 말해서
console.log() 는 매개변수로 전달된 값을 출력하고 console.dir() 은 매개변수로 전달된 객체의 속성을 출력한다.
#3.2 Searching For Elements
getElementsByClassName() : 많은 element들을 한번에 가져올때 쓴다.(array를 반환) 괄호안에 html에 있는 클래스 이름을 써야한다.
getElementsByTagName() : name을 할당할 수 있음(array를 반환) 괄호안에 태그 이름을 써야 한다 div, h1 등등
querySelector : element를 CSS selector방식으로 검색할 수 있다. 이런식으로
const h1 = document.querySelector(".hello:first-child h1");
근데 만약 조건에 맞는 것이 여러개라면 첫번째 element만 가져온다. 이때 조건에 맞는 것들을 다 가져오고 싶다면
querySelectorAll을 사용한다.
#3.3 Events
event: 어떤 행위를 하는 것
event를 listen 해야 한다.
h1.addEventListener("click", handTitleClick);
무슨 event를 listen 해야 할지 정해야 하는데 예를 들어서 "click"이라고 쓰면 click event에 대해 listen 하고 싶은 것이다.
그러면 저 위의 코드는 누군가 클릭 하는것을 listen 할것이다.
const h1 = document.querySelector(".hello:first-child h1");
function handTitleClick() {
h1.style.color = 'blue';
}
h1.addEventListener("click", handTitleClick);
원래 함수를 실행 시키려면 함수명() 이런식으로 괄호를 써야 하는데 함수를 곧바로 실행 시키고 싶지 않을때
function을 JS에 넘겨주고 h1을 click 할때 JS가 실행 버튼을 대신 눌러주길 바르는 것이므로 괄호를 쓰지 않는다.
#3.4 Events part Two
mouseenter -> 마우스가 특정 위치 위에 위치해 있을때 event
mouseleave -> 마우스가 특정 위치 위에 위치해 있지 않을때 event
style 은 JS에서도 바꿀 수 있지만 대부분의 경우 CSS를 통해 변경되어야 한다.
#3.5 More Events
event를 사용하는 방법에는 2가지가 있다.
h1.addEventListener("click", handTitleClick); // 1번째 방법
h1.onclick = handTitleClick; // 2번째 방법
1번째 방법을 선호하는 이유는 removeEventListener을 통해서 event listener을 제거할수있기 때문이다.
document의 head,title,body 는 중요하기 때문에 document.body.style~ 은 허용되고
function handleWindowResize() {
document.body.style.backgroundColor = 'tomato';
}
h1이나 div 같은 것들은 호출이 안되서 querySelcetor나 getElementByID로 호출해야 한다.
window 는 기본 제공이 된다.
function handleWindowResize() {
document.body.style.backgroundColor = 'tomato';
}
function handWindowCopy() {
alert('copier!');
}
function handWindowOffline() {
alert('no WIFI');
}
function handWindowOnline() {
alert('ALL GOOD');
}
window.addEventListener('resize',handWindowResize); //화면크기가 바뀌면 event
window.addEventListener('copy',handWindowCopy); // ctrl+c 하면 event
window.addEventListener('offline',handWindowOffline); // wifi가 꺼졌을때 event
window.addEventListener('online',handWindowOnline); // wifi가 켜졌을때 event
'JavaScript' 카테고리의 다른 글
노마드 코더 - 바닐라 JS로 크롬 앱 만들기(#6.0 ~ #6.2) (0) | 2022.03.18 |
---|---|
노마드 코더 - 바닐라 JS로 크롬 앱 만들기(#5.0 ~ #5.3) (0) | 2022.03.17 |
노마드 코더 - 바닐라 JS로 크롬 앱 만들기(#2.11 ~ #2.16) (0) | 2022.02.22 |
노마드 코더 - 바닐라 JS로 크롬 앱 만들기(#2.5 ~ #2.10) (0) | 2022.02.09 |
노마드 코더 - 바닐라 JS로 크롬 앱 만들기(#1 ~ #2.4) (0) | 2022.01.25 |