달리는 자동차
JavaScript 정리5 본문
객체생성
1. function을 이용하여 객체의 속성지정
2. 메소드를 만들어서 속성을 어떻게 할 것인지 지정.
3.객체를 생성
ex) 자동차
공통적으로 이름, 엔진, 제작사, 색 -->속성
시동을 건다,달린다,커브를 돈다 --> 메소드
자동차를 만드는 것 --> 객체생성
<!--속성 선언-->
function makeCar(){//makeCar속성을 정의하는 함수의 이름
//속성은 this로 사용하여 선언
this.name; 이름 속성
this.company; 제조사 정의
this.color; 자동차 색 정의
this.numPeople; 탑승인원
this.meth=showCar; //이러한 자료들로 어떻게 할지에 대한 메소드 연결.
showCar라는 메소드명을 지정하여 선언.
}
<!--메소드 생성-->
function showCar(){//메소드의 역할은 만든 자동차가 어디회사의 것인지
몇명이 탈수있는지 보여주는 기능을 한다.
document.write("자동차 이름:"+this.name+"<br/>");
document.write("자동차 제조사:"+this.company+"<br/>");
document.write("차량색상:"+this.color+"<br/>");
document.write("자동차 탑승인원:"this.numPeople+"<br/>");
}
<!--객체 생성-->
r8 = new makeCar();
//객체(만들상품)를 생성할 변수를 선언한 후 new라는 명령어를 사용하고 객체 속성을 선언한 함수 명을 적어준다.
//이렇게 하면 아무속성도 없는 깡통자동차 하나가 생긴것. 이제 속성을 부여해주자.
r8.name="R8";
r8.company="AUDI";
r8.color="white";
r8.numPeople=2;
r8.meth(); //showCar가 담긴 메소드 호출
다시정리
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title>자동차 만들기</title>
<script>
function makeCar(){
this.name;
this.company;
this.color;
this.numPeople;
this.meth=showCar;
}
function showCar(){
document.write("자동차 이름 :" +this.name+"<br/>");
document.write("자동차 제조사:" +this.company+"<br/>");
document.write("자동차 탑승인원:" +this.numPeople+"<br/>");
document.write("차량색상:" + this.color+"<br/>");
}
r8 = new makeCar();
r8.name="R8";
r8.company="AUDI";
r8.numPeople=2;
r8.meth();
</script>
</head>
<body>
</body>
</html>
만약 내가 람보르기니의 우루스를 만들고싶다.!
그럼 아래 r8을 만든것처럼 객체를 다시 생성한다.
우르스 = new makeCar( ); 우르스.name="우르스"; 우르스.company="람보르기니"; 우르스.color="Yellow"; 우르스.numPeople=4; 우르스.meth(); |
셀렉터 : 선택자 -> 이벤트에 대한 학습을 위해서이다. 예를 들어 어떤 버튼을 클릭 후에 어떠한 명령문이 실행되게 하게끔 하는것이다. CSS에서는 셀렉터에 대해서 학습할 때 ID또는 태그를 선택해서 style을 적용하였다. JavaScript에서는 셀렉터를 생성하고 이벤트를 붙이는 방식으로 진행한다. |
document.getElementsByClassName( ) document.getElementsByTagName( ) document.getElementsById( ) document.querySelector( ) document.querySelectorAll( ) 을 사용한다. |
1. Class Selector
클래스 속성을 가진 태그의 셀렉터 생성방법
document.getElementsByClassName(클래스명)[순서]; |
클래스는 같은 이름으로 여러개를 생성할 수 있다.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title>자바스크립트</title>
<script>
window.onload=function(){
document.getElementsByClassName('hello')[2].style.color="red";
};
</script>
</head>
<body>
<p class="hello">Hello World</p>
<p class="hello">Hello world</p>
<p class="hello">Hello world</p>
</body>
</html>
window.onload=function( ){}가 없을 경우 p태그를 읽기 전 document.getElementsByClassName('hello')[2]가 실행되어 해당클래스들이 없기때문에 (인터프리터방식)실행이 안된다. 이럴경우 window.onload=function(){}을 사용하여 자바스크립트가 문서가 준비된 상황 이후에 발동하도록 하는 코드를 함께 사용해준다. 이것이 window.onload 메소드 이다.
window.onload 로 재정의(오버라이딩)하여 함수 내의 코드를 웹브라우저 내의 모든 요소가 준비되어야 실행이 되도록 할 수 있다. |
2. Tag Selector
태그도 같은 태그를 여러개 생성 할 수 있기 때문에 getElements를 사용한다. ClassName대신 TagName을 사용한다.
document.getElementsByTagName(태그명)[순서]; |
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title>태그 셀렉터</title>
<script>
window.onload=function(){
document.getElementsByTagName('p')[1].style.color="red";
};
</script>
</head>
<body>
<p>Hello World</p>
<p>Hello World</p>
<p>Hello World</p>
</body>
</html>
3. ID selector
id는 특성상 같은 아이디 명을 사용하지 않는 것이 규칙이다. 그래서 getElements를 사용하지 않고 getElement를 사용한다. 또한 인덱스도 없다. 아이디는 고유하기 때문에..
document.getElementById(ID명); |
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title>아이디 셀렉터</title>
<script>
window.onload=function(){
document.getElementById('hello').style.color="red";
};
</script>
</head>
<body>
<p>Hello World</p>
<p id="hello">Hello World</p>
<p>Hello World</p>
</body>
</html>
4. querySelector
-CSS공부할때 정리 ->우선 skip
클릭 이벤트 생성 1. inline방식. = onClick사용 2. script태그에서 클릭이벤트 실행하기. =addEventLister() 함수사용 |
inline방식
태그에 onClick속성을 지정하고 값으로 실행문을 입력한다. 예를 들어 p태그를 클릭할 때 클릭 이벤트를 지정한다면,
<p onClick="명령문">click here</p>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title>클릭 이벤트</title>
</head>
<body>
<p onClick="alert('Hello');">클릭해</p>
</body>
</html>
Script태그에서 클릭이벤트 실행하기
addEventLister()함수안에 첫번째 아규먼트로 이벤트명을 입력하는 방식
선택자.addEventLister('이벤트유형',function(){명령문;}); |
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title>addEventLister()사용</title>
<script>
window.onload=function(){
var target = document.getElementsByTagName('p')[0];
target.addEventListener('click',function(){alert('Hello');});
};
</script>
</head>
<body>
<p>click here</p>
</body>
</html>
마우스이벤트 생성 -특정요소에 마우스 포인터를 올리면 색이 짙어진다던가 그림자가 생김 -다양하게 마우스포인터를 올렸을 때, 클릭한 후 때는 순간 등등. |
1. mouseover
-마우스포인터를 올렸을 때 이다.
-P태그 생성 후 p태그에 마우스 포인터를 올렸을 때 텍스트의 색을 변경
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title>mouseover</title>
<script>
window.onload=function(){
var target = document.getElementsByTagName('p')[0];
target.addEventListener('mouseover',function(){
target.style.color="blue";
});
};
</script>
</head>
<body>
<p>here</p>
</body>
</html>
2. mouseout
-마우스 포인터가 떠날 때 이벤트이다.
-위의 코드에 mouseout 이벤트만 추가해놓으면 된다.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title>마우스 떠날때 색 원위치</title>
<script>
window.onload= function(){
var target=document.getElementByTagNage('p')[0];
target.addEventListener('mouseover',function(){
target.style.color="blue";
});
target.addEventListener('mouseout',function(){
target.style.color="black";
});
};
</script>
</head>
<body>
<p>here</p>
</body>
</html>
3. mousedown & mouseup
누르는 순간은 mousedown 떼는 순간은 mouseup이다.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title>마우스 올리고 떼기</title>
<script>
window.onload = function(){
var target = document.getElementsByTagName('p')[0];
target.addEventListener('mousedown',function(){
target.style.color="pink";
});
target.addEventListener('mouseup',function(){
target.style.color="black";
});
};
</script>
</head>
<body>
<p>here</p>
</body>
</html>
위에서 사용한 이벤트들을 inline방식으로 사용한다고 하면 앞에 on을 붙인다
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title>자바스크립트 마우스이벤트</title>
</head>
<body>
<p
onMouseover="this.style.color='red';" //가까이가면 빨강
onMouseout="this.style.color='black';" //멀리가면 검정
onMousedown="this.style.color='yellow';" //누르는 순간 노랑색
onMouseup="this.style.color='pink';"> //떼는순간 핑크색
here
</p>
</body>
</html>
스크롤 값을 확인하는 함수 document.addEventListener('scroll',function(){ }); |
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title>스크롤이벤트</title>
<script>
document.addEventListener('scroll',function(){
var currentScrollValue=document.documentElement.scrollTop;
console.log('currentScrollValue is'+currentScrollValue);
});
</script>
<style>
div{height:2000px}
</style>
</head>
<body>
<div></div>
</body>
</html>
'JavaScript,JQUERY > JavaScript' 카테고리의 다른 글
JavaScript 정리4 (0) | 2020.08.24 |
---|---|
JavaScript 정리 3 (0) | 2020.08.24 |
JavaScript 정리2 (0) | 2020.08.22 |
JavaScript 정리1 (0) | 2020.08.22 |
자바스크립트 함수 (0) | 2020.08.18 |