๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
JQuery

์ œ์ด์ฟผ๋ฆฌ : ์—ฐ๊ฒฐ ๋ฐฉ๋ฒ•

by ์ฝ”ํŒŒ์นด 2022. 8. 29.
728x90

์ œ์ด์ฟผ๋ฆฌ : ์—ฐ๊ฒฐ ๋ฐฉ๋ฒ•

JQuery๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์–ธ์–ด๋ฅผ ๊ฐ„ํŽธํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋‹จ์ˆœํ™”์‹œํ‚จ ์˜คํ”ˆ ์†Œ์Šค ๊ธฐ๋ฐ˜์˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค. JQuery๋ฅผ ์ด์šฉํ•˜๋ฉด ์งง๊ณ  ๋‹จ์ˆœํ•œ ์ฝ”๋“œ๋กœ๋„ ์›น ํŽ˜์ด์ง€์— ๋‹ค์–‘ํ•œ ํšจ๊ณผ๋‚˜ ์—ฐ์ถœ์„ ์ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


1. JQuery์˜ ์žฅ์ 

1. JQuery๋Š” ์ฃผ์š” ์›น ๋ธŒ๋ผ์šฐ์ €์˜ ๊ตฌ๋ฒ„์ „์„ ํฌํ•จํ•œ ๋Œ€๋ถ€๋ถ„์˜ ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ง€์›๋ฉ๋‹ˆ๋‹ค.
2. HTML DOM์„ ์†์‰ฝ๊ฒŒ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, CSS ์Šคํƒ€์ผ๋„ ๊ฐ„๋‹จํžˆ ์ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
3. ์• ๋‹ˆ๋ฉ”์ด์…˜ ํšจ๊ณผ๋‚˜ ๋Œ€ํ™”ํ˜• ์ฒ˜๋ฆฌ๋ฅผ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ ์šฉํ•ด ์ค๋‹ˆ๋‹ค.
4. ๊ฐ™์€ ๋™์ž‘์„ ํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ๋”์šฑ ์งง์€ ์ฝ”๋“œ๋กœ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
5. ๋‹ค์–‘ํ•œ ํ”Œ๋Ÿฌ๊ทธ์ธ๊ณผ ์ฐธ๊ณ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์„œ๊ฐ€ ๋งŽ์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.
6. ์˜คํ”ˆ ๋ผ์ด์„ ์Šค๋ฅผ ์ ์šฉํ•˜์—ฌ ๋ˆ„๊ตฌ๋‚˜ ์ž์œ ๋กญ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ˆ˜๋งŽ์€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ค‘์—์„œ๋„ ์ œ์ด์ฟผ๋ฆฌ๊ฐ€ ํŠนํžˆ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ์ด์œ ๋Š”, ์œ„์™€ ๊ฐ™์€ ์žฅ์ ๋“ค์„ ์ง€๋…”๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

2. JQuery ์—ฐ๊ฒฐ ๋ฐฉ๋ฒ•

์ œ์ด์ฟผ๋ฆฌ๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๋ฏ€๋กœ, ์ œ์ด์ฟผ๋ฆฌ ํŒŒ์ผ์€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ(.js ํŒŒ์ผ) ํ˜•ํƒœ๋กœ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ์ œ์ด์ฟผ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ๋Š” ์ œ์ด์ฟผ๋ฆฌ ๊ณต์‹ ์‚ฌ์ดํŠธ์—์„œ ์ œ์ด์ฟผ๋ฆฌ๋ฅผ ๋‹ค์šด๋กœ๋“œ ๋ฐ›๊ฑฐ๋‚˜, CDN์„ ์ด์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

1) ๋‹ค์šด๋กœ๋“œ ๋ฐฉ์‹

์ œ์ด์ฟผ๋ฆฌ๋Š” ๊ณต์‹ ์‚ฌ์ดํŠธ์—์„œ ๋‹ค์šด๋กœ๋“œ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

https://jquery.com/download

์‚ฌ์ดํŠธ์— ์ ‘์†ํ•˜์—ฌ Download the compressed, production jQuery 3.6.1'์„ ๋‹ค์šด๋กœ๋“œํ•œ ๋’ค, ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์ž˜ ์—ฐ๊ฒฐ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•ด ๋ด…๋‹ˆ๋‹ค.

<html lang="ko">
<head>
    <meta charset="UTF-8">
    <title>์—ฐ๊ฒฐ์ด ๋˜์—ˆ์„๊นŒ์š”?</title>
</head>
<body>
    <script src="jquery-3.6.1.min.js"></script>
    <script>
        $(document).ready(function() {
            console.log("๋์ง€๋กฑ");
        });
    </script>
</body>
</html>

์ œ์ด์ฟผ๋ฆฌ ๋ช…๋ น์–ด $(document).ready()๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด, ์•„๋ž˜์™€ ๊ฐ™์ด ์ฝ˜์†”์—์„œ ๊ฒฐ๊ณผ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

2. CDN ๋ฐฉ์‹

https://code.jquery.com

CDN์€ ์ œ์ด์ฟผ๋ฆฌ ๊ณต์‹ ์‚ฌ์ดํŠธ์— ์ ‘์†ํ•˜์—ฌ, jQuery Core 3.3.1 - minified ๋ฒ„์ „์„ ์„ ํƒํ•˜๊ณ  ์นดํ”ผํ•˜์—ฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ์—ฐ๊ฒฐํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

<html lang="ko">
<head>
    <meta charset="UTF-8">
    <title>์—ฐ๊ฒฐ์ด ๋˜์—ˆ์„๊นŒ์š”?</title>
</head>
<body>
    <script src="https://code.jquery.com/jquery-3.6.1.min.js"
    integrity="sha256-o88AwQnZB+VDvE9tvIXrMQaPlFFSUTR+nldQm1LuPXQ="
    crossorigin="anonymous"></script>
    <script>
        $(document).ready(function() {
            console.log("๋์ง€๋กฑ");
        });
    </script>
</body>
</html>

์ œ์ด์ฟผ๋ฆฌ CDN์€ ๊ตฌ๊ธ€, MS, CDNJS, jsDelivr ๋“ฑ ๋‹ค์–‘ํ•œ ๋ฒ„์ „์ด ์žˆ์Šต๋‹ˆ๋‹ค.

3. ๊ธฐ๋ณธ ํ˜•์‹

์ œ์ด์ฟผ๋ฆฌ์˜ ๊ธฐ๋ณธ ํ˜•์‹์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

$(document).ready(function() {
    ์‹คํ–‰๋ฌธ;
});

๋‹ฌ๋Ÿฌ($) ๊ธฐํ˜ธ๋Š” ์ œ์ด์ฟผ๋ฆฌ๋ฅผ ์˜๋ฏธํ•˜๊ณ , ์ œ์ด์ฟผ๋ฆฌ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ์‹๋ณ„์ž์ž…๋‹ˆ๋‹ค. ์„ ํƒ์ž๋ฅผ ์ด์šฉํ•˜์—ฌ ์›ํ•˜๋Š” HTML ์š”์†Œ๋ฅผ ์„ ํƒํ•˜๊ณ , ๋™์ž‘ ํ•จ์ˆ˜๋ฅผ ์ •์˜ํ•˜์—ฌ ์„ ํƒ๋œ ์š”์†Œ์— ์›ํ•˜๋Š” ๋™์ž‘์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

$(document).ready()๋ฅผ ์งง๊ฒŒ ํ‘œํ˜„ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‘ ๊ฐœ์˜ ๊ตฌ๋ฌธ ์ค‘ ํŽธํ•œ ๊ฒƒ์œผ๋กœ ์„ ํƒํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

$(function() {
    ์‹คํ–‰๋ฌธ
});

4. ํ™œ์šฉ ์˜ˆ์‹œ

sliderInner = document.querySelector(".slider__inner");
slider = document.querySelectorAll(".slider")
let currentIndex = 0;
        
sliderInner.style.transition = "all 0.6s";
setInterval(() => {
    currentIndex = (currentIndex + 1) % slider.length;
        
    sliderInner.style.transform = "translateX("+ -800 * currentIndex +"px)";
}, 2000);

์œ„ ์˜ˆ์‹œ๋ฅผ ์ œ์ด์ฟผ๋ฆฌ๋ฅผ ํ†ตํ•ด ๋” ๊ฐ„๋‹จํ•œ ์†Œ์Šค๋กœ ์ž‘์—…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

let currentIndex = 0;
        
setInterval(() => {
    currentIndex = (currentIndex + 1) % $(".slider").length;
        
    $(".slider__inner").css("position", "relative");
    $(".slider__inner").animate({ left: -800 * currentIndex }, 600)
}, 2000);
728x90

๋Œ“๊ธ€

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๐Ÿฆ™

CSS
๊ด‘๊ณ  ์ค€๋น„์ค‘