본문 바로가기

기초 문법/자바스크립트

[jQuery] jQuery 정리

 문서의 구조를 담당하는 것이 HTML이고 디자인적인 표현을 담당하는 것이 CSS라고 한다면 JavaScript가 하는 일은 동적으로 수정하여 웹 화면에 인터랙션을 주는 게 주 목적이라고 할 수 있습니다. 사용자의 행동에 따라 실시간으로 웹에 어떠한 변화가 일어나는 상황을 만들어, 동적인 웹 페이지를 작성하는 것이 목표입니다. 

 

 

# Contents


  • 선택자
  • css()
  • attr
  • 탐색 구문
  • 이벤트 연결
  • 애니메이션
  • 다양한 명령어들

 

 

# 선택자


 jQuery로 특정 요소를 선택하는 기본구문은 아래와 같습니다.

 

$("선택할 요소")

jQuery 선택자의 쌍따옴표 안의 선택 요소는 기존의 CSS 선택자와 동일합니다.

 

 

# css()


 css() 구문을 사용하여 선택된 요소의 CSS 속성을 변경하는 법을 알아보도록 하겠습니다. 해당 구문은 다음과 같습니다.

 

$("선택자").css({"속성명": "속성 값"})

중간에 콤마를 사용하여 변경하고자 하는 속성명과 속성 값을 추가할 수 있습니다.

 

 

# attr()


 attr() 구문을 이용해 HTML 문서에서 선택된 요소의 attr 속성을 변경해 보겠습니다. 해당 구문은 다음과 같습니다.

 

$("선택자").attr({"속성명": "속성 값"})

중간에 콤마를 사용하여 변경하고자 하는 속성명과 속성 값을 추가할 수 있습니다.

먼저 예제코드를 보도록 하겠습니다. 첫번째로 index.html 코드입니다.

 

<!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>
        <link rel="stylesheet" href="./css/reset.css" />
        <link rel="stylesheet" href="./css/style.css" />
    </head>
    <body>
        <button class="btn1">이미지 속성 변경 1</button>
        <button class="btn2">이미지 속성 변경 2</button>
        <div class="frame">
            <img src="./img/img1.jpg" alt="img1" />
        </div>
    </body>
    <script src="https://code.jquery.com/jquery-3.6.0.js" integrity="sha256-H+K7U5CnXl1h5ywQfKtSj8PCmoN9aaq30gDh27Xc0jk=" crossorigin="anonymous"></script>
    <script src="./script/app.js"></script>
</html>

 

다음은 JavaScript 코드입니다.

 

$(document).ready(() => {
    let btn1 = $(".btn1");
    let btn2 = $(".btn2");

    btn1.on("click", changeAttr("./img/img1.jpg"));
    btn2.on("click", changeAttr("./img/img2.jpg"));
});

function changeAttr(resource) {
    return function () {
        console.log(resource);
        $(".frame img").attr({ src: resource });
    };
}

 

버튼을 클릭하게 되면 해당 프레임 안의 사진이 src 경로가 변경되면서 이미지가 바뀌는 것을 확인할 수 있습니다.

 

 

# 탐색 구문


 이전 절에서는 jQuery를 이용하여 기본적인 HTML 요소의 선택 및 CSS 속성의 변경법에 대해 알아봤습니다. 이번 절에서는 기존 선택자에 jQuery가 제공하는 다양한 탐색 구문을 활용하여 원하는 요소를 더욱 디테일하게 선택하는 법을 배우겠습니다.

 

$("선택자").children()

$("선택자").parent()

$("선택자").siblings()

$("선택자").find()

$("선택자").eq()

$("선택자").next()

$("선택자").prev()

$("선택자").not()

jQuery에서 제공하는 탐색 구문들은 말 그대로 기본 jQuery 선택자를 기준으로 해당 선택자와 관련된 다양한 요소들을 탐색해서 선택하기 위한 구문입니다. jQuery의 탐색 구문은 단독으로 사용하기도 하지만 복수 이상의 구문을 서로 조합해 활용하기도 합니다.

 

 

# 이벤트 연결하기


 실제 사용자가 웹상에서 특정한 행동을 취했을 때 그에 대한 상호작용으로 jQuery구문을 실행시켜보도록 하겠습니다. 선택자에 이벤트를 연결해주는 구문은 다음과 같습니다.

 

$("선택자").on("이벤트", callback)

먼저 예제코드를 보도록 하겠습니다.

 

$(document).ready(() => {
    let box1 = $(".box1");
    let box2 = $(".box2");

    box1.on("click", () => {
        $(`.box1 p`).text("click event");
    });

    box1.on("mouseenter", () => {
        $(`.box1 p`).text("mouse enter");
    });

    box1.on("mouseleave", () => {
        $(`.box1 p`).text("mouse leave");
    });

    box1.on("mousemove", () => {
        $(`.box1 p`).text("mouse move");
    });

    $(window).on("scroll", () => {
        $(`.box1 p`).text("scroll change");
    });

    $(window).on("resize", () => {
        $(`.box1 p`).text("resize change");
    });
});

 

총 6개의 이벤트를 연결하여 각각의 이벤트가 발생했을 때, text() 명령어로 해당 문구가 <p> 태그에 표시되도록 설정하였습니다. 화면을 스크롤하거나 리사이즈 하는 것은 특정 HTMl 요소가 아니라 브라우저를 대상으로 한 사용자 행동이므로 브라우저를 선택하는 선택자인 $(window)를 사용합니다.

 

 

# animation


 jQuery의 꽃이라고 할 수 있는 animate() 구문을 이용하여 HTMl 요소를 선택하고 해당 요소를 다양하게 움직이면서 움직임의 시간, 가속도 등을 제어해보도록 하겠습니다. animate() 의 기본 사용 구문은 다음과 같습니다.

 

.animate( properties [, duration ] [, easing ] [, complete ] )

properties

  • backgroundPositionX
  • backgroundPositionY
  • borderBottomWidth
  • borderLeftWidth
  • borderRightWidth
  • borderSpacing
  • borderTopWidth
  • borderWidth
  • bottom
  • fontSize
  • height
  • left
  • letterSpacing
  • lineHeight
  • margin
  • marginBottom
  • marginLeft
  • marginRight
  • marginTop
  • maxHeight
  • maxWidth
  • minHeight
  • minWidth
  • opacity
  • outlineWidth
  • padding
  • paddingBottom
  • paddingLeft
  • paddingRight
  • paddingTop
  • right
  • textIndent
  • top
  • width
  • wordSpacing

duration

  • 애니메이션 효과를 완료할 때까지 걸리는 시간입니다. 단위는 1/1000초, 기본값은 400입니다.
  • fast나 slow로 정할 수 있습니다. fast는 200, slow는 600에 해당합니다.

easing

  • 애니메이션 효과의 방식을 정합니다.
  • swing과 linear이 가능하며, 기본값은 swing입니다.

complete

요소가 사라진 후 수행할 작업을 정합니다.

 

먼저 예제코드를 보도록 하겠습니다.

 

$(document).ready(() => {
    let box1 = $(".box1");

    box1.on("mouseenter", () => {
        box1.stop().animate({ width: "400px", height: "400px" }, "1000", "swing", () => {
            box1.stop().animate({ opacity: "0.3" }, "1000", "swing");
        });
    });

    box1.on("mouseleave", () => {
        box1.stop().animate({ width: "200px", height: "200px" }, "1000", "swing", () => {
            box1.stop().animate({ opacity: "0.7" }, "1000", "swing");
        });
    });
});

 

 

 

# 다양한 명령어들


index()

선택자의 순서 값을 찾아주는 구문입니다. 여러 개의 반복되는 선택자가 있을 경우 사용자가 조금 전 클릭 한 요소의 순서 값을 알아야 할 때 해당 구문을 자주 활용합니다. $(this).index()를 주로 사용합니다.

 

 

width() || height()

특정 요소의 넓이와 높이를 구하는 구문입니다. 또한 해당 구문을 통해 기존의 넓이 값과 높이 값을 변경할 수 있습니다.

 

 

hide() || show() || fadeout() || fadeIn()

요소를 숨김, 보이기 처리할 수 있을 뿐 아니라 모션 효과까지 추가할 수 있습니다.

 

 

addClass() || removeClass()

특정 요소에 클래스를 추가하고 제거하는 구문입니다.

 

 

text()

특정 요소 안의 문자를 가져오거나 변경하는 구문입니다.

 

 

e.pageX || e.pageY

화면 상에서 마우스 커서의 x축, y축 좌표를 구하는 구문입니다. 중요한 점은 (e) 를 파라미터로 받아야 합니다.

 

 

scrollTop()

화면을 스크롤할 때에 현재 사용자가 스크롤한 만큼의 거리를 계산해줍니다. 세로로 긴 웹페이지의 경우 버튼을 클릭할 때 마다 해당 위치로 자동 스크롤된느 기능을 구현할 때 자주 활용하는 구문으로써 $(window).scrollTop()을 많이 사용합니다.

 

 

offset().top()

해당 선택자를 기준으로 문서 끝에서부터 선택자가 위치하고 있는 y축의 거리를 나타냅니다.

 

 

 

 

 

 

 

 

 

 

'기초 문법 > 자바스크립트' 카테고리의 다른 글

[jQuery] mousewheel.js  (0) 2021.11.23
[Java] 자바로 SCP 전송  (0) 2021.09.29
[JavaScript] Decorator  (0) 2021.09.28
[JavaScript] AES128 암호화/복호화  (0) 2021.09.24
객체에서 배열, 배열에서 객체  (0) 2021.09.24