스파르타 코딩클럽 2주차 - 03

JQuery 적용하기(나홀로메모장)

  • 완성된 모습 먼저 보기
    '포스팅박스 열기' 버튼을 누르면 숨겨진 창이 나타나고 버튼의 내용이 '포스팅박스 닫기'로 바뀜.
    다시 한 번 버튼을 클릭하면 원래 모습으로 돌아감.

  • 포스팅 박스 열기 버튼에 function을 달기
    <script>
    function openclose() {
    	// 여기에 jQuery를 이용해 코드를 짤 예정    
    }
    </script>
    
    // onclick 속성(attribute)을 추가
    <button onclick="openclose()" class="btn btn-primary btn-lg">포스팅박스 열기</button>
  • 클릭 해서 포스팅 박스를 여닫게 하기
    • 포스팅 박스에 id 값을 주기
      <div class="form-post" id="post-box">
          <div>
              <div class="form-group">
                  <label for="exampleFormControlInput1">아티클 URL</label>
                  <input class="form-control" placeholder="">
              </div>
              <div class="form-group">
                  <label for="exampleFormControlTextarea1">간단 코멘트</label>
                  <textarea class="form-control" rows="2"></textarea>
              </div>
              <button type="button" class="btn btn-primary">기사저장</button>
          </div>
      </div>
    • 포스팅 박스 제어하기
      function openclose() {
          // id 값 post-box의 display 값이 block 이면
          if ($('#post-box').css('display') == 'block') {
              // post-box를 가리고
              $('#post-box').hide();
          } else {
              // 아니면 post-box를 펴라
              $('#post-box').show();
          }
      }
    • posting-box를 시작부터 감춰두기 (css의 display:none 속성!) 👉 이런 것을, inline-style (인라인 스타일) 이라고 름 여기저기 쓰면 복잡하겠지만, 이렇게 쓰면 직관적으로 "아 처음부터 안보이는 태그구나!"를 알 수 있음 (class주고, css에서 display:none 속성을 주는 것도 방법) ```jsx
      아티클 URL
      간단 코멘트
      기사저장
      ```
  • '포스팅박스 열기' 버튼의 글씨 바꿔주기
    • 포스팅박스 열기 버튼에 id 값 주기
      <button id="btn-posting-box" onclick="openclose()" class="btn btn-primary btn-lg">포스팅박스 열기</a>
    • 버튼 텍스트를 바꿔주기
      function openclose() {
          // id 값 post-box의 display 값이 block 이면
          if ($('#post-box').css('display') == 'block') {
              // post-box를 가리고
              $('#post-box').hide();
      				// 가렸으니까 이제 열기로 바꿔두기
              $('#btn-posting-box').text('포스팅 박스 열기');
          } else {
              // 아니면 post-box를 펴라
              $('#post-box').show();
      				// 폈으니까 이제 닫기로 바꿔두기
              $('#btn-posting-box').text('포스팅 박스 닫기');
          }
      }
  • 완성코드
    • [코드스니펫] 포스팅박스(완성)
      <!doctype html>
      <html lang="en">
      
      <head>
          <!-- Required meta tags -->
          <meta charset="utf-8">
          <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
      
          <!-- Bootstrap CSS -->
          <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css"
              integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
      
          <!-- Optional JavaScript -->
          <!-- jQuery first, then Popper.js, then Bootstrap JS -->
          <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
          <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js"
              integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q"
              crossorigin="anonymous"></script>
          <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js"
              integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl"
              crossorigin="anonymous"></script>
      
          <title>스파르타코딩클럽 | 부트스트랩 연습하기</title>
      
          <link href="https://fonts.googleapis.com/css2?family=Jua&display=swap" rel="stylesheet">
      
          <style>
              * {
                  font-family: 'Jua', sans-serif;
              }
      
              .wrap {
                  margin: auto;
                  width: 900px;
              }
      
              .comment {
                  font-weight: bold;
                  color: blue;
              }
      
              .posting-box {
                  margin: 10px auto 30px auto;
                  width: 500px;
      
                  border: 3px solid black;
                  border-radius: 5px;
      
                  padding: 25px;
              }
          </style>
          <script>
              function openclose() {
                  let status = $('#post-box').css('display');
                  if (status == 'block') {
                      $('#post-box').hide()
                      $('#posting-box-btn').text('포스팅박스 열기')
                  } else {
                      $('#post-box').show()
                      $('#posting-box-btn').text('포스팅박스 닫기')
                  }
              }
          </script>
      </head>
      
      <body>
          <div class="wrap">
              <div class="jumbotron">
                  <h1 class="display-4">나홀로 링크 메모장!</h1>
                  <p class="lead">중요한 링크를 저장해두고, 나중에 볼 수 있는 공간입니다</p>
                  <hr class="my-4">
                  <p class="lead">
                      <a id="posting-box-btn" onclick="openclose()" class="btn btn-primary btn-lg" href="#"
                          role="button">포스팅박스 열기</a>
                  </p>
              </div>
              <div class="posting-box" id="post-box">
                  <div class="form-group">
                      <label for="exampleInputEmail1">아티클 URL</label>
                      <input id="post-url" type="email" class="form-control" aria-describedby="emailHelp" placeholder="">
                  </div>
                  <div class="form-group">
                      <label for="exampleInputPassword1">간단 코멘트</label>
                      <input type="password" class="form-control" placeholder="">
                  </div>
                  <button type="submit" class="btn btn-primary">기사 저장</button>
              </div>
              <div class="card-columns" id="cards-box">
                  <div class="card">
                      <img class="card-img-top"
                          src="https://d2ur7st6jjikze.cloudfront.net/offer_photos/29590/185689_medium_1525763241.jpg?1525763241"
                          alt="Card image cap">
                      <div class="card-body">
                          <a href="http://naver.com" class="card-title">여기 기사 제목이 들어가죠</a>
                          <p class="card-text">기사의 요약 내용이 들어갑니다. 동해물과 백두산이 마르고 닳도록 하느님이 보우하사 우리나라만세 무궁화 삼천리 화려강산...</p>
                          <p class="card-text comment">여기에 코멘트가 들어갑니다.</p>
                      </div>
                  </div>
                  <div class="card">
                      <img class="card-img-top"
                          src="https://d2ur7st6jjikze.cloudfront.net/offer_photos/29590/185689_medium_1525763241.jpg?1525763241"
                          alt="Card image cap">
                      <div class="card-body">
                          <a href="http://naver.com" class="card-title">여기 기사 제목이 들어가죠</a>
                          <p class="card-text">기사의 요약 내용이 들어갑니다. 동해물과 백두산이 마르고 닳도록 하느님이 보우하사 우리나라만세 무궁화 삼천리 화려강산...</p>
                          <p class="card-text comment">여기에 코멘트가 들어갑니다.</p>
                      </div>
                  </div>
                  <div class="card">
                      <img class="card-img-top"
                          src="https://d2ur7st6jjikze.cloudfront.net/offer_photos/29590/185689_medium_1525763241.jpg?1525763241"
                          alt="Card image cap">
                      <div class="card-body">
                          <a href="http://naver.com" class="card-title">여기 기사 제목이 들어가죠</a>
                          <p class="card-text">기사의 요약 내용이 들어갑니다. 동해물과 백두산이 마르고 닳도록 하느님이 보우하사 우리나라만세 무궁화 삼천리 화려강산...</p>
                          <p class="card-text comment">여기에 코멘트가 들어갑니다.</p>
                      </div>
                  </div>
                  <div class="card">
                      <img class="card-img-top"
                          src="https://d2ur7st6jjikze.cloudfront.net/offer_photos/29590/185689_medium_1525763241.jpg?1525763241"
                          alt="Card image cap">
                      <div class="card-body">
                          <a href="http://naver.com" class="card-title">여기 기사 제목이 들어가죠</a>
                          <p class="card-text">기사의 요약 내용이 들어갑니다. 동해물과 백두산이 마르고 닳도록 하느님이 보우하사 우리나라만세 무궁화 삼천리 화려강산...</p>
                          <p class="card-text comment">여기에 코멘트가 들어갑니다.</p>
                      </div>
                  </div>
                  <div class="card">
                      <img class="card-img-top"
                          src="https://d2ur7st6jjikze.cloudfront.net/offer_photos/29590/185689_medium_1525763241.jpg?1525763241"
                          alt="Card image cap">
                      <div class="card-body">
                          <a href="http://naver.com" class="card-title">여기 기사 제목이 들어가죠</a>
                          <p class="card-text">기사의 요약 내용이 들어갑니다. 동해물과 백두산이 마르고 닳도록 하느님이 보우하사 우리나라만세 무궁화 삼천리 화려강산...</p>
                          <p class="card-text comment">여기에 코멘트가 들어갑니다.</p>
                      </div>
                  </div>
              </div>
          </div>
      </body>
      
      </html>

좋은 웹페이지 즐겨찾기