커뮤니티
포인트
쿠폰
내 강의실
국비 신청 내역
증명서
계정
로그아웃
학습 질문
개발 일지
나의 활동
답변 완료
showText, hideText가 제대로 작동하지 않습니다.
인생사진 쏙쏙 코딩네컷 v0
1주차
북마크
김*호
댓글
3
추천
0
조회수
13
조회수
13
답변 완료

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

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


처음에 밑의 description이 안 보이는 상황이나 마우스를 가져다 대도 무반응 입니다.






작성한 코드 및 에러 메세지

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

            position: relative;   /*photo-frame 밑에 있는 놈(글자문구)를 frame 기준으로 어디에 위치하게 할 것이냐*/

            cursor: pointer;

        }


        .footer{

            display: flex;

            flex-direction: column;

            align-items: 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('./img1.png'); /* './'하면 index.html파일 안에 있는 현재 폴더에 접근 하게된다*/

        }


        #image2{

            background-image: url('./img2.png');

        }


        #image3{

            background-image: url('./img3.png');

        }


        #image4{

            background-image: url('./img4.png');

        }


        .photo_description{

            color: white;

            background-color: black;

            width: fit-content; /*안에 있는 글자 개수에 맞는 너비를 가져라*/

            padding: 0 20px;

            margin-bottom: 10px;

            border-radius: 10px;  /*radius가 원형이라는 뜻이므로 경계선을 둥글게둥글게*/

            position:absolute;  

            bottom: 0;

            transform: translate(-50%);

            left: 50%;                 /*위의 두줄 왼쪽에서 50%만큼 정렬*/

            opacity: 0;

        }


        .video{

            width: 100%;

            height: 100%;

        }


        .showText{

            opacity: 1;   /* opacity는 불투명도, 0이면 불투명도 0% 즉, 다 보인다. 1은 그 반대. */

            transition: opacity 0.5s linear;

        }


        .hideText{

            opacity: 0;

           

        }


    </style>

    <script>

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

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

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

            function showText(number) {

                if (number === 1) {

                    console,log('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="dsec1" class="photo_description">

                    첫 번째 이미지 설명

                </span>

            </div>

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

                onmouseover="showText(2)"

                onmouseout="hideText(2)"

                onclick="alertText(2)">

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

                    두 번째 이미지 설명

                </span>

            </div>

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

                onmouseover="showText(3)"

                onmouseout="hideText(3)"

                onclick="alertText(3)">

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

                    세 번째 이미지 설명

                </span>

            </div>

            <div class="photo-frame">

                <iframe

                    src="https://www.youtube.com/embed/eN5mG_yMDiM"

                    frameborder="0"

                    class="video"

                ></iframe>

            </div>

        </div>

        <div class="footer">

            <p class="f-title"> Happy lunchtime</p>

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

        </div>


  </div>

</body>

</html>

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