html,css,javascript

toggle, val

seungmin576 2024. 11. 25. 17:21
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>나만의 추억앨범</title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.4/jquery.min.js"></script>
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
    <style>
        @import url('https://fonts.googleapis.com/css2?family=Diphylleia&display=swap');
        * {
            
            font-family: "Diphylleia", serif;
            font-weight: 400;
            font-style: normal;
        }
        .mytitle {
            background-color: green;
            height: 250px;
            color: white;
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            background-image: url('https://images.unsplash.com/photo-1511992243105-2992b3fd0410?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1470&q=80');
            background-position: center;
            background-size: cover;
        }
        .mytitle > button {
            width: 150px;
            height: 50px;
            background-color: transparent;
            color: white;
            border: 1px solid white;
            border-radius: 5px;
            margin-top: 20px;
        }
        .mycards {
            width: 1200px;
            margin: 30px auto 0 auto;
        }
        .mypostingbox{
            width: 500px;
            margin: 30px auto 0 auto;
            padding: 20px;
            box-shadow: 0px 0px 3px 0px blue;
            border-radius: 5px;
        }
        .mybtn {
            display: flex;
            flex-direction: row;
            align-items: center;
            justify-content: center;
        }
        .mybtn > button {
            margin-left: 5px;
        }
    </style>
    <script>
      function oppenclose(){
        $('#postingbox').toggle();
      }
      function makeCard(){
        let image = $('#image').val();
        let title = $('#title').val();
        let content = $('#content').val();
        let date = $('#date').val();

        let temp_html =`
        <div class="col">
              <div class="card h-100">
                <img src="${image}"
                <div class="card-body">
                  <h5 class="card-title">${title}</h5>
                  <p class="card-text">${content}</p>
                </div>
                <div class="card-footer">
                  <small class="text-body-secondary">${date}</small>
                </div>
              </div>
            </div>`;
            $('#card').append(temp_html);
      }
    </script>
</head>
<body>
    <div class="mytitle">
        <h1>
            나만의 추억 앨범
        </h1>
        <button onclick="oppenclose()">
            추억 저장하기
        </button>
    </div>
    <div class="mypostingbox" id="postingbox">
        <div class="form-floating mb-3">
            <input type="email" class="form-control" id="image" placeholder="앨범 이미지">
            <label for="floatingInput">앨범 이미지</label>
        </div>
        <div class="form-floating mb-3">
            <input type="email" class="form-control" id="title" placeholder="앨범 제목">
            <label for="floatingInput">앨범 제목</label>
        </div> 
        <div class="form-floating mb-3">
            <input type="email" class="form-control" id="content" placeholder="앨범 내용">
            <label for="floatingInput">앨범 내용</label>
        </div>
        <div class="form-floating mb-3">
            <input type="email" class="form-control" id="date" placeholder="앨범 날짜">
            <label for="floatingInput">앨범 날짜</label>
        </div>
        <div class="mybtn">
            <button onclick="makeCard()" type="button" class="btn btn-dark">기록하기</button>
            <button type="button" class="btn btn-outline-dark">닫기</button>
        </div>           
    </div>
    <div class="mycards">
        <div id="card" class="row row-cols-1 row-cols-md-4 g-4">
            <div class="col">
              <div class="card h-100">
                <img src="https://images.unsplash.com/photo-1446768500601-ac47e5ec3719?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1446&q=80" class="card-img-top" alt="...">
                <div class="card-body">
                  <h5 class="card-title">앨범 제목</h5>
                  <p class="card-text">앨범 내용</p>
                </div>
                <div class="card-footer">
                  <small class="text-body-secondary">앨범 날짜</small>
                </div>
              </div>
            </div>
            <div class="col">
                <div class="card h-100">
                  <img src="https://images.unsplash.com/photo-1446768500601-ac47e5ec3719?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1446&q=80" class="card-img-top" alt="...">
                  <div class="card-body">
                    <h5 class="card-title">앨범 제목</h5>
                    <p class="card-text">앨범 내용</p>
                  </div>
                  <div class="card-footer">
                    <small class="text-body-secondary">앨범 날짜</small>
                  </div>
                </div>
              </div>
              <div class="col">
                <div class="card h-100">
                  <img src="https://images.unsplash.com/photo-1446768500601-ac47e5ec3719?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1446&q=80" class="card-img-top" alt="...">
                  <div class="card-body">
                    <h5 class="card-title">앨범 제목</h5>
                    <p class="card-text">앨범 내용</p>
                  </div>
                  <div class="card-footer">
                    <small class="text-body-secondary">앨범 날짜</small>
                  </div>
                </div>
              </div>
              <div class="col">
                <div class="card h-100">
                  <img src="https://images.unsplash.com/photo-1446768500601-ac47e5ec3719?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1446&q=80" class="card-img-top" alt="...">
                  <div class="card-body">
                    <h5 class="card-title">앨범 제목</h5>
                    <p class="card-text">앨범 내용</p>
                  </div>
                  <div class="card-footer">
                    <small class="text-body-secondary">앨범 날짜</small>
                  </div>
                </div>
              </div>
          </div>
    </div>
</body>
</html>

오늘 사용한 html 코드

 

toggle

function oppenclose(){
          $('#postingbox').toggle();
      }

function 이름 정하기(){

     $('샾 사용시 id 값 불러오기.').jquery 내장 함수 toggle();

}

인데

toggle은 display: none을 적용, 해제를 해주는 함수이기 때문에 뭔가 사라지거나 나타나게 해준다.

 

 

val

val() 함수는 앞의 데이터 값을 가져 오는 것이다.

 

function makeCard(){
        let image = $('#image').val();
        let title = $('#title').val();
        let content = $('#content').val();
        let date = $('#date').val();

        let temp_html =`
        <div class="col">
              <div class="card h-100">
                <img src="${image}"
                <div class="card-body">
                  <h5 class="card-title">${title}</h5>
                  <p class="card-text">${content}</p>
                </div>
                <div class="card-footer">
                  <small class="text-body-secondary">${date}</small>
                </div>
              </div>
            </div>`;
            $('#card').append(temp_html);
      }

makeCard 함수 안을 보면

let image 변수는 아이디가 image인 태그의 값을 가져오는 것이다.

let temp_html 변수 안 내용에 img src = ${image}로 image 변수를 불러오는 것이다.

마지막 내용은 id가 card인 태그에 append 함수를 이용하여 temp_html 변수를 더한다.

그럼 기록하기 버튼을 눌렀을 때 새로운 앨범카드가 우리가 적은 내용으로 생기게 되는 것이다.

 

 

 

 

 

'html,css,javascript' 카테고리의 다른 글

JSON, API, fetch  (0) 2024.11.27
jquery, list dictionary 혼합사용  (0) 2024.11.21
html, css, javascript  (2) 2024.11.20