공부일지

230927 (HTML)

CD가참둥그렇다 2023. 9. 27. 12:35

테스트 12. 애니메이션 만들기 연습

  • @keyframes : 애니메이션의 중간 상태를 지정한다.
  • animation- 속성 : name-이름 지정, duration-지속 시간 지정, iteration-count-반복 회수 지정
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>애니메이션</title>
<style>
@keyframes bomb {
	from { font-size:500% }
	to { font-size: 100% }
}
h3 {
	animation-name:bomb;
	animation-duration: 3s;
	animation-iteration-count: infinite;
}
</style>
</head>
<body>
	<h3>꽝!</h3>
	<hr>
	<p>꽝! 글자가 3초 동안 500%에서 
	시작하여 100%로 바뀌는 
	애니메이션입니다. 무한 반복합니다.</p>
</body>
</html>

  • 테스트 13. font-size에 대한 전환 효과 만들기
    • Transition : 폰트 사이즈가 변화 시 5초 간 변화 적용
    • 다른 조건에 폰트 사이즈의 변경이 있어야 한다.
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>전환</title>
    <style>
    span {
    	transition: font-size 5s;
    }
    span:hover {
    	font-size: 500%
    }
    </style>
    </head>
    <body>
    	<h3>font-size에 대한 전환</h3>
    	<hr>
    	<p><span>꽝!</span> 글자에
    	마우스를 올려보세요</p>
    </body>
    </html>
    

테스트 14. 다양한 변환 사례

  • rotate : 개체를 회전한다. 양수는 시계 방향, 음수는 반시계 방향
  • skew : 개체를 기울인다. 기울이면서 내용물이 늘어난다.
  • translate : 개체를 이동시킨다. translateY는 Y축 이동을 지정한다. 축 지정이 없다면 x,y축을 모두 지정해야 한다.
  • scale : 개체가 확대/축소 된다.
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>다양한 변환 사례</title>
<style>
div {
	display: inline-block;
	padding: 5px;
	color: white;
	background: olivedrab;
}

div#rotate { transform: rotate(20deg);}
div#skew { transform: skew(0deg,-20deg);}
div#translate { transform: translateY(100px);}
div#scale { transform: scale(3,1);}

div#rotate:hover { transform: rotate(80deg);}
div#skew:hover { transform: skew(0deg,-60deg);}
div#translate:hover { transform: translate(50px, 100px);}
div#scale:hover { transform: scale(4,2);}

div#scale:active { transform: scale(1,5);}
</style>
</head>
<body>
	<h3>다양한 Transform</h3>
	아래는 회전(rotate), 기울임(skew), 이동(translate),
	확대/축소(scale)가 적용 된 사례이다.
	또한 마우스를 올리면 추가적인 변환이 일어난다.
	<hr>
	<div id="rotate">rotate(20deg)</div>
	<div id="skew">rotate(20deg)</div>
	<div id="translate">rotate(20deg)</div>
	<div id="scale">scale(3,1)</div>
</body>
</html>

6장

테스트 1. HTML 태그의 이벤트 리스너 속성에 자바스크립트 코드 작성

  • onmouseover/out : hover와 같은 형식으로 사용할 수 있다.
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>이벤트 리스너 속성에 자바스크립트 코드</title>
</head>
<body>
	<h3>마우스를 올려 보세요</h3>
	<hr>
	<img alt="이미지" src="media/apple.png"
		onmouseover="this.src='media/banana.png'"
		onmouseout="this.src='media/apple.png'">
</body>
</html>

테스트 2. <script>태그에 자바스크립트 코드 작성

  • function name() {} : name()를 호출하면 작동할 코드를 지정한다.
  • function은 자바처럼 ; 로 명령을 닫아줘야 한다.
  • obj : 개체 지정
  • obj에 다른 개체의 id를 지정하면 해당 개체에서 코드가 작동한다.
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>script 태그에 자바스크립트 작성</title>
<script>
function over(obj) {
	obj.src="media/banana.png";
}
function out(obj) {
	obj.src="media/apple.png";
}

</script>
</head>
<body>
	<h3>마우스를 올려 보세요</h3>
	<hr>
	<img alt="이미지" src="media/apple.png"
		onmouseover="over(this)"
		onmouseout="out(this)">
</body>
</html>

테스트 3. 자바스크립트 파일 작성 및 불러오기

  • 스크립트 소스로 자바스크립트 파일을 직접 추가할 수 있다.
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>외부 파일에 자바스크립트 작성</title>
<script src="lib.js">
</script>
</head>
<body>
	<h3>마우스를 올려 보세요</h3>
	<hr>
	<img alt="이미지" src="media/apple.png"
		onmouseover="over(this)"
		onmouseout="out(this)">
</body>
</html>

테스트 4. 링크의 href에 자바스크립트 코드 작성

  • 링크 기능을 통해 자바스크립트 동작을 할 수 있다. alert는 팝업 경고창 띄우기
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>URL에 자바스크립트 작성</title>
</head>
<body>
	<h3>링크의 href에 자바스크립트 작성</h3>
	<hr>
	<a href="javascript:alert('클릭하셨어요?')">클릭해보세요</a>
</body>
</html>

테스트 5. document.write()로 웹 페이지에 HTML 콘텐츠 출력

  • 본문 내부에 script를 이용하여 내용을 작성할 수 있다.
  • document.write는 html 양식에 맞춰서 태그를 적용해 출력하도록 하는 코드
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>document.write() 활용</title>
</head>
<body>
	<h3>document.write() 활용</h3>
	<hr>
	<script>
		document.write("<h3>Welcome!</h3>");
		document.write("2 + 5 는 <br>");
		document.write("<mark>7 입니다.</mark>");
	</script>
</body>
</html>

테스트 6. 지역변수와 전역변수, 블록변수

  • 자바와 동일한 지역변수, 전역변수, 블록변수의 유효한 위치를 가진다.
  • script 내부는 자바와 같은 문법을 사용한다.
  • 변수 선언만 let을 이용한다. 변수는 초기화를 한 후에 변수 타입이 지정된다.
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>변수 선언</title>
</head>
<body>
	<h3>변수 선언, 전역/지역/블록 변수</h3>
	<hr>
	<script>
		let x;
		function f() {
			let y;
			x = 10;
			y = 20;
			z = 30;
			if (y == 20) {
				let b = 40;
				b++;
				document.write("if 블록 내 블록변수 b = " + b + "<br>")
			}
			document.write("함수f() 내 지역변수 y = " + y + "<br>")
		}

		f();
		document.write("지역변수 x = " + x + "<br>")
		document.write("지역변수 z = " + z)
	</script>
</body>
</html>

테스트

  • 아이디 비밀번호를 입력하고 빈 칸 일시 알림으로 띄우는 스크립트 작성
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>로그인 폼</title>
</head>
<body>
	<script>
	function f() {
		if (document.submit.id.value=="") {
		alert('id를 입력하세요');
	}	else if (document.submit.pw.value=="") {
		alert('pw를 입력하세요');
	}	else {
		alert('회원가입 완료');
	}
	}
		
	</script>
	<form name="submit" onSubmit="f()">
		id : <input type="text" id="id"> 
		pw : <input type="password"	id="pw"> 
			<input type="submit" value="submit">
	</form>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<script type="text/javascript">
   function validation() {
      var objId = document.getElementById("id"); //아이디
      var objPwd = document.getElementById("pwd"); //비밀번호
      var div2 = document.getElementById("message");

      if (objId.value == "") {
         console.log("id empty");
         div2.innerHTML = "아이디 입력 바랍니다.";
      } else if (objPwd.value == "") {
         div2.innerHTML = "비밀번호 입력 바랍니다.";
      } else {
         div2.innerHTML = "잘 입력 했습니다.";
      }

   }
</script>
<body>
   <form>
      <table>
         <tr>
            <td><b>아이디: </b></td>
            <td><input type="text" id="id"></td>
         </tr>
         <tr>
            <td><b>비밀번호: </b></td>
            <td><input type="password" id="pwd"></td>
         </tr>
      </table>
      <input type="button" value="log-in" onclick="validation();">
      <div align="center" id="message" style="background-color: aqua;"></div>
   </form>
</body>
</html>