커뮤니티
포인트
쿠폰
내 강의실
국비 신청 내역
증명서
계정
로그아웃
학습 질문
개발 일지
나의 활동
답변 완료
마우스 오버 효과 & 클릭효과 질문드립니다.
인생사진 쏙쏙 코딩네컷 v0
1주차
북마크
혀*비
댓글
3
추천
0
조회수
15
조회수
15
답변 완료

* 겪고 있는 문제 상황을 최대한 자세하게 작성해주세요.

* 문제 해결을 위해 어떤 시도를 해보았는지 구체적으로 함께 알려주세요.


마지막 단계까지 다 완료 했는데

첫 번째 사진이랑 두 번째 사진은 마우스를 올렸을 때 글자가 사라지고

세 번째 사진은 마우스 올리기 전에도 글이 없다가 마우스를 올려도

글자가 나타나지 않는데 왜 그런건가요?





작성한 코드 및 에러 메세지

<!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>


/* 이서윤체 폰트 적용을 위한 코드 */


@font-face {

font-family: "LeeSeoyun";

src: url("https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_2202-2@1.0/LeeSeoyun.woff")

format("woff");

font-weight: normal;

font-style: normal;

}



/* body태그 자체에 css 요소 부여 */

body {

font-family: "LeeSeoyun";

margin: 0;

display: flex;

justify-content: center;

background-image: url("./background.png");

}


.container {

width: 390px;

background-color: #ff9d73;

height: 100%;

}


.photos{

margin-top: 30px;

}


.photo-frame {

background-color: white;

margin: 15px 20px;


height: 200px;

background-size: cover;

background-position: center;

position: relative;

cursor: pointer;

}


 .footer {

 text-align: center;

 }

 .f-title {

  color: white;

  font-size: 25px;

  font-weight: 900;

 }

 .f-date {

  color: white;

  font-size: 15px;

  font-weight: 500;

 }

 #image1 {

  background-image: url(./사진1.png);

 }

 #image2 {

  background-image: url(./사진2.png);

 }

 #image3 {

  background-image: url(./사진3.png);

 }

 #image4 {

  background-image: url(./사진4.png);

 }

 .photo_description {

  color: black;

  background-color:rgba(255, 255, 255, 0.774);

  bottom: 0;

  padding: 0 20px;

  margin-bottom: 10px;

  border-radius: 10px;

  opacity: 0;


 }

 .video {

  width: 100%;

  height: 100%;

 }

 .showText {

  opacity: 0;

 }

.hideText{

 opacity: 1;

 transition: opacity 0.5s linear;

}

</style>

<script>

 // 텍스트가 보여지는 기능

// 1. 몇 번째 사진에 마우스가 올라갔는지 확인(if문)

// 2. 해당 사진을 찾아 hideText class를 지워주고, showText는 삽입해줌

function showText(number) {

 if (number === 1) {

  document.querySelector("#desc1").classList.remove("hideText");

  document.querySelector("#desc1").classList.add("showText");

 } else if (number === 2) {

  document.querySelector("#desc2").classList.remove("hideText");

  document.querySelector("#desc2").classList.add("showText");

 } else {

  document.querySelector("#desc3").classList.remove("hideText");

  document.querySelector("#desc3").classList.add("showText");

 }

}


// 텍스트가 감춰지는 기능

// 1. 몇 번째 사진에서 마우스가 벗어났는지 확인(if문)

// 2. 해당 사진을 찾아 shotText class를 지워주고, hideText는 삽입해줌

function hideText(number) {

 if (number === 1) {

  document.querySelector("#desc1").classList.remove("showText");

  document.querySelector("#desc1").classList.add("hideText");

 } else if (number === 2) {

  document.querySelector("#desc2").classList.remove("showText");

  document.querySelector("#desc2").classList.add("hideText");

 } else {

  document.querySelector("#desc3").classList.remove("showText");

  document.querySelector("#desc3").classList.add("hideText");

 }

}


// 클릭 기능

// 1. 선택된 사진의 숫자를 가진 텍스트를 alert 형태로 출력해줌

function alertText(number) {

 alert(`${number}번째 추억이에요! 눌러주셔서 감사합니다 :)`);

}

</script>

</head>

<body>

<div class="container">

<div class="photos">

<div id="image1" class="photo-frame"

 onmouseover="showText(1)"

 onmouseout="hideText(1)"

 onclick="alertText(1)"

>

<span id="desc1" class="photo_description">

사과 피스 'ㅅ'

</span>

</div>

<div id="image2" class="photo-frame"

onmouseover="showText(2)"

 onmouseout="hideText(2)"

 onclick="alertText(2)"

>

<span id="desc2" class="photo_description">

핫도그 피스 'ㅅ'

</span>

</div>

<div id="image4" class="photo-frame"

onmouseover="showText(3)"

 onmouseout="hideText(3)"

 onclick="alertText(3)"

>

<span id="desc4" class="photo_description">

  곰돌이 피스 'ㅅ'

  </span>

</div>

<div class="photo-frame">

 <iframe

 src="https://www.youtube.com/embed/-jlaF003gBo"

 frameborder="0"

 class="video"

></iframe>

 </div>

</div>

<div class="footer">

<p class="f-title">[백현네컷]</p>

<p class="f-date">2023.02.06</p>


</div>

</div>

</body>

</html>


취소
 공유
취소
댓글 0
댓글 알림
나의얼굴