다른 명언
728x90
반응형
마무리 문제 1. 이미지에서 마우스 포인터를 다른 곳으로 이동하면 그림이 바뀌는 소스를 작성해 보세요.
<!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>
* {
margin: 0;
padding: 0;
}
.container {
width: 1200px;
height: 800px;
margin: 0 auto;
padding: 50px;
text-align: center;
}
.container h2{
width: 1200px;
text-align: center;
color: aqua;
}
</style>
</head>
<body>
<div class="container">
<h2>마우스 오버하면 이미지 바꾸기</h2>
<img src="img/pic-1.jpg" class="image">
</div>
<script>
const cursor = document.querySelector(".container .image");
// const cursor = document.querySelector(".container");
cursor.addEventListener("mouseover", () => {
cursor.src="img/pic-2.jpg"
});
cursor.addEventListener("mouseout", () => {
cursor.src="img/pic-1.jpg"
});
// document.querySelector(".active").addEventListener("mouseover", function(){
// cursor.classList.add("active");
// });
// $img = document.querySelector(".container > img");
// $img.src = `change.img/pic-2.jpg`;
</script>
</body>
</html>
이름이 container인 div박스 안에 화면에 표시될 이미지를 넣었습니다. 스타일 태그 안에는 각각의 스타일을 지정하였습니다.
스크립트 코드
선택자를 지정하고 마우스 오버했을 때 선택자에 이벤트 메서드인 addEventListener("mouseover") 를 했을 때 변경 될 이미지가 나오게 설정합니다. 마우스 아웃했을 때 선택자에 이벤트 메서드인 addEventListener("mouseout") 를 적용하여 마우스가 그림에서 떨어졌을 때 그림이 원래대로 변하는 효과를 넣었습니다.
마무리 문제 2. 이벤트를 활용하여 필요에 따라 메뉴가 나타나고 감추어 지도록 만들어 봅시다.
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>연습문제 2</title>
<style>
* {
box-sizing: border-box;
}
body {
display: flex;
justify-content: center;
align-items: center;
margin:0;
min-height:100vh;
}
button {
position:fixed;
top:20px;
right:20px;
background-color:#639;
padding:15px;
border:none;
outline: none;
color:white;
transition: transform 0.3s ease-in-out;
}
button.active {
transform:translateX(-110px);
}
nav {
position:fixed;
top:0;
right:0;
background-color:#639;
height:100vh;
padding:2em;
transform:translateX(100%);
transition: transform 0.3s ease-in-out;
}
nav.active {
transform:translateX(0);
}
nav ul {
padding:0;
margin:0;
list-style: none;
}
nav ul li {
padding:1em 0;
}
nav a {
color:white;
text-decoration: none;
}
</style>
</head>
<body>
<button id="bttn">☰</button>
<nav id="nav">
<ul>
<li><a href="#">Javascript</a></li>
<li><a href="#">Typescript</a></li>
<li><a href="#">Node.js</a></li>
</ul>
</nav>
</body>
<script>
const button1 = document.querySelector("#bttn")
const nav1 = document.querySelector("#nav")
button1.addEventListener("click", () => {
nav1.classList.toggle("active")
button1.classList.toggle("active")
});
</script>
</html>
button 태그에 id값 bttn을 설정하고 nav태그에 id값 nav를 설정 하였습니다.
선택자로 button1과 nav1을 설정하고 id값을 불러옵니다.
버튼을 클릭 했을 때 버튼이 옆으로 이동하며 목록이 나오는 이벤트를 주기위해 addEventListener("click")를 써서 함수를 작성했습니다. 또한 버튼과 목록에 스타일을 주기 위해 classList를 적용하고 toggle 속성을 이용해서 add와 remove를 대체 하였습니다.
728x90