예제) 입력값 적용 실습
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<input type="text" id="name">
<button id="btn">변경</button>
<br>
<img src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSUi-vgxbSiIm0VBVgV5bE-ee0wIovVyWyJ2g&usqp=CAU"
width="250" id="imgid">
<script>
// 사진 1
// https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSUi-vgxbSiIm0VBVgV5bE-ee0wIovVyWyJ2g&usqp=CAU
// 사진2
// https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQsPwjNBVs4mYjVj12VFTgpdBCOcm0dOGhi2ho_wiKBVv-MeB2q2qHTsmgK5i-FCPOMlUA&usqp=CAU
// step 1
// 1-1) 변경! 이라는 버튼을 눌렀을 때
// 1-2) 사용자가 input태그에 입력한 값을 찾는다.
// 1-3) 2번 값을 콘솔에 출력
let inputTag = document.getElementById("name");
document.getElementById("btn").addEventListener("click", () => {
console.log(inputTag.value);
});
// step 2. 조건에 맞게 사진을 배치
// 2-1) 만약 사진1 값이 들어오면 사진의 속성을 사진1으로 변경
// 2-2) 만약 사진2 값이 들어오면 사진의 속성을 사진2로 변경
// 2-3) 둘 다 아니라면, '잘못 입력하셨습니다.'라는 알림창
// 2-4) 사용자가 입력 후에 버튼을 누름과 동시에 input입력창을 초기화
let imgid = document.getElementById("imgid");
document.getElementById("btn").addEventListener("click", () => {
if(inputTag.value=="고기1") {
imgid.src = 'https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSUi-vgxbSiIm0VBVgV5bE-ee0wIovVyWyJ2g&usqp=CAU';
inputTag.value = "";
}else if(inputTag.value=='고기2') {
imgid.src = 'https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQsPwjNBVs4mYjVj12VFTgpdBCOcm0dOGhi2ho_wiKBVv-MeB2q2qHTsmgK5i-FCPOMlUA&usqp=CAU';
inputTag.value = "";
}else {
alert("잘못 입력하셨습니다.");
}
// 2-5) 자동포커싱 제공 : focus()
document.getElementById('inputTag').focus();
});
</script>
</body>
</html>
종합)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<input type="text" id="name">
<button id="btn">변경</button>
<br>
<img src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSUi-vgxbSiIm0VBVgV5bE-ee0wIovVyWyJ2g&usqp=CAU"
width="250" id="imgid">
<script>
// 사진 1
// https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSUi-vgxbSiIm0VBVgV5bE-ee0wIovVyWyJ2g&usqp=CAU
// 사진2
let name = document.getElementById("name");
let imgid = document.getElementById("imgid");
document.getElementById("btn").addEventListener("click", () => {
if(name.value == "고기1") imgid.src = "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSUi-vgxbSiIm0VBVgV5bE-ee0wIovVyWyJ2g&usqp=CAU";
else if(name.value == "고기2") imgid.src = "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQsPwjNBVs4mYjVj12VFTgpdBCOcm0dOGhi2ho_wiKBVv-MeB2q2qHTsmgK5i-FCPOMlUA&usqp=CAU";
else alert("잘못 입력하셨습니다.");
name.value = "";
// 자동포커싱 제공 : focus()
document.getElementById("name").focus();
});
</script>
</body>
</html>
예제) 스타일 변경 실습
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<h1 id="h1Tag">양고기 리무진</h1>
<button id="btn">스타일 변경</button>
<script>
// 버튼을 클릭하면,h1태그의 디자인을 수정
document.getElementById('btn').addEventListener("click", () => {
// 1. 스타일을 바꿔줄 요소를 가져오기
let h1Tag = document.getElementById('h1Tag');
// 1-1. 내가 가져온 요소가 어떤 스타일을 가지고 있지?
console.log(h1Tag.style);
// 1-2. 색깔 속성만 보고싶으면
console.log(h1Tag.style.color);
h1Tag.style.color = 'yellow';
h1Tag.style.background = 'pink';
});
</script>
</body>
</html>
종합)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<h1 id="h1Tag">양고기 리무진</h1>
<button id="btn">스타일 변경</button>
<script>
document.getElementById("btn").addEventListener("click", () => {
let h1Tag = document.getElementById("h1Tag");
h1Tag.style.color = 'yellow'
h1Tag.style.background = 'pink';
});
</script>
</body>
</html>
예제) 실행위치.html 과 외부파일.js
html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<!--
1. 인라인 방식
=> 태그 안에 JS 문법을 명시하는 방법
장점 : 단순 로직 처리에 용이
단점 : 재사용성이 아주아주 낮다. 코드가 노출된다.
-->
<button onclick="alert('알림!');">버튼</button>
<script>
// 2. 내부 방식
// HTML 코드 안에 script 태그를 이용해서 내부에 직접 작성하는 방법
// 장점 : 빠르게 타이핑 가능, 전체 코드를 한 번에 볼 수 있다.
// 단점 : 코드가 노출, 재사용성이 낮다.
</script>
<!--
3. 외부방식
- 외부 js 파일을 불러와서 동작하는 방법
- script 태그에 src를 통해서 연결
-->
<script src="./ex30_외부파일.js">
</script>
</body>
</html>
js
console.log("외부파일 불러오기 성공");
예제) 업다운 게임
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
body{
background-image: url("https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQxRfp6909QcuNO0QFiNke8PfhBBCH1vjaESw&usqp=CAU");
background-repeat: no-repeat;
background-size: cover;
}
.container{
/*rgba(0~255, 0~255, 0~255, 0~1)
a : 1에 가까워질수록 색깔이 선명해진다. */
background-color: rgba(255, 255, 255, 0.4);
width: 400px;
padding: 50px;
border-radius: 50px;
/*div요소 가운데 정렬*/
position: absolute;
left: 35%;
top: 35%;
transform: translate(-50%, -50%);
/*내부 텍스트 가운데로 정렬*/
text-align: center;
}
.container>h1 {
margin-top: 0;
}
#user{
width: 200px;
height: 30px;
border: 0;
font-weight: bold;
margin-top: 10px;
margin-bottom: 10px;
}
#check{
background-color: rgb(115, 235, 135);
}
#reset{
background-color: rgb(235, 209, 96);
}
</style>
</head>
<body>
<div class="container">
<h1>UPDOWN GAME</h1>
<div id="result">결과값이 나오는 공간</div>
<div id="chance">남은 찬스 : 5번</div>
<input type="text" id="user">
<div class="button">
<button id="check">확인</button>
<button id="reset">초기화</button>
</div>
</div>
<script>
// 랜덤숫자 만들기(1, 100)
let num = parseInt(Math.random()*100)+1;
console.log(num);
let result = document.getElementById("result");
let chance = document.getElementById("chance");
let user = document.getElementById("user");
let check = document.getElementById("check");
let reset = document.getElementById("reset");
let total = 5;
function game() {
console.log("입력한 숫자 : ", user.value);
total -= 1;
chance.textContent = `남은 찬스 : ${total}번`;
if(Number(user.value)>num) {
console.log("더 낮은 숫자를 입력하세요.");
}else if(Number(user.value)<num) {
console.log("더 높은 숫자를 입력하세요.");
}else {
console.log("정답입니다.");
}
if(total == 0) {
result.textContent = "모든 기회를 소진했습니다.";
check.disabled = true;
}
};
check.addEventListener("click", game);
reset.addEventListener("click", () => {
user.value = "";
});
</script>
</body>
</html>
'Web > JavaScript' 카테고리의 다른 글
스타일변경(객체이용) (0) | 2023.04.24 |
---|---|
jQuery (0) | 2023.04.24 |
객체 (0) | 2023.04.19 |
함수 (0) | 2023.04.18 |
랜덤배열, 점수출력 예제 (0) | 2023.04.17 |
댓글