Javascript 정리 ①

영긔·2024년 4월 1일
1

📒 Vanilla JS

목록 보기
1/8
post-thumbnail

✨ 글자, 스타일 변경

html

<html>
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
    </head>
    <body>
        <h1 id="hello">안녕하세요</h1>
        <script>
            document.getElementById('hello').innerHTML='안녕';
            document.getElementById('hello').style.fontSize='16px';
        </script>
    </body>
</html>

해당 글자를 바꾸려면 getElementById를 사용하여 글자, 혹은 스타일을 변형할 수 있다.

✨ 창 열고 닫기

html

<html>
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
        <link rel="stylesheet" href="main.css">
    </head>
    <body>
        <div class="alert-box" id="alert">알림창임<button onclick="document.getElementById('alert').style.display='none'">닫기</button></div>
        <button onclick="document.getElementById('alert').style.display='block'">버튼</button>
    </body>
</html>

css

.alert-box{
    background-color:skyblue;
    padding: 20px;
    color: white;
    border-radius:5px;
    display: none;
}

이런식으로 작성하면 알림창을 열었다가 닫았다가 할 수 있다.

✨ 함수 만들기

html

<html>
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
        <link rel="stylesheet" href="main.css">
    </head>
    <body>
        <div class="alert-box" id="alert">
            알림창임
            <button onclick="closepop()">닫기</button>
        </div>
        <button onclick="pop()">버튼</button>
        <script>
            function pop(){
                document.getElementById('alert').style.display='block';//창 열기
            }
            function closepop(){
                document.getElementById('alert').style.display='none';//창 닫기
            }
        </script>
    </body>
</html>

이런식으로 pop함수를 만들어 어떤 버튼을 누르냐에 따라 메세지를 달리 표현할 수 있다

id의 경우에는 중복허용 안하는데, classname은 중복될 수 있다. 그래서 getElementsByClassName()[0] 이런식으로 작성해야한다

✨ 부트스트랩 사용하여 Navbar 만들기

html

<html lang="en">
  <head>
    <!-- Required meta tags -->
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">

    <!-- Bootstrap CSS -->
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous">
    <link rel="stylesheet" href="./main.css" />
    <title>Hello, world!</title>
  </head>
  <body>
    <nav class="navbar navbar-light bg-light">
        <div class="container-fluid">
          <span class="navbar-brand">Navbar</span>
          <button class="navbar-toggler" type="button">
            <span class="navbar-toggler-icon"></span>
          </button>
        </div>
      </nav>
      <ul class="list-group">
        <li class="list-group-item">An item</li>
        <li class="list-group-item">A second item</li>
        <li class="list-group-item">A third item</li>
        <li class="list-group-item">A fourth item</li>
        <li class="list-group-item">And a fifth one</li>
      </ul>
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ka7Sk0Gln4gmtz2MlQnikT1wXgYsOg+OMhuP+IlRH9sENBO0LRn5q+8nbTov4+1p" crossorigin="anonymous"></script>
    <script>
        // document.querySelector('.list-group')
        document.getElementsByClassName('navbar-toggler')[0]
        .addEventListener('click',function(){
            document.getElementsByClassName('list-group')[0].classList.toggle('show');
        })
    </script>
  </body>
</html>

css

.list-group{
    display: none
}
.show{
    display: block
}

부트스트랩을 사용하여 Navbar를 만들어 버튼을 누를때마다 메뉴가 나오도록 할 수 있다.

Bootstrap 바로가기

원하는 버전의 스타터 템플릿으로 시작할 수 있다.

예시 (v 5.1)

<html lang="en">
  <head>
    <!-- Required meta tags -->
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">

    <!-- Bootstrap CSS -->
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous">

    <title>Hello, world!</title>
  </head>
  <body>
    <h1>Hello, world!</h1>

    <!-- Optional JavaScript; choose one of the two! -->

    <!-- Option 1: Bootstrap Bundle with Popper -->
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ka7Sk0Gln4gmtz2MlQnikT1wXgYsOg+OMhuP+IlRH9sENBO0LRn5q+8nbTov4+1p" crossorigin="anonymous"></script>

    <!-- Option 2: Separate Popper and Bootstrap JS -->
    <!--
    <script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.10.2/dist/umd/popper.min.js" integrity="sha384-7+zCNj/IqJ95wo16oMtfsKbZ9ccEh31eOz1HGyDuCQ6wgnyJNSYdrPa03rtR1zdB" crossorigin="anonymous"></script>
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.min.js" integrity="sha384-QJHtvGhmr9XOIpI6YVutG+2QOK9T+ZnN4kzFN1RtK3zEFEIsxhlmWl5/YESvpZ13" crossorigin="anonymous"></script>
    -->
  </body>
</html>

✨ 기타

document.querySelector('.list-group')

toggle을 사용하여 class가 있으면 제거하고, 없으면 추가할 수 있다.

document.querySelector('.list-group')

제일 위에 요소만 찾아준다.

document.querySelector('#group')

.을 붙이면 class명을 찾아주고, #를 붙여주면 id명을 찾아준다

document.querySelectorAll("li");

querySelectorAll이라고 하면 모든 요소를 찾아준다. []를 사용해 인덱싱해주어야 한다.

🔎 jQuery는 문법

🔎 모든 자바스크립트 라이브러리는 body태그가 끝나기 전에 넣는 것이 권장된다.

profile
SKYDeveloper

0개의 댓글