๋ฐ์ํ
์ฌ๋ผ์ด๋ ์ดํํธ 02
์ด๋ฒ ์๊ฐ์๋ ๊ทธ ๋์ ๋ฐฐ์ ๋ JavaScript๋ฅผ ์ด์ฉํ์ฌ ์ฌ๋ผ์ด๋ ์ดํํธ๋ฅผ ๋ง๋ค์ด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
2์ด๋ง๋ค ๋ค์ ์ฌ์ง์ผ๋ก ์ฌ๋ผ์ด๋ ๋๋ ํจ๊ณผ์ด๋ฉฐ, JS ์ฝ๋์ GSAP, jQuery ์ฝ๋ ์ธ ๊ฐ์ง๋ฅผ ๋ณด์ฌ๋๋ฆฌ๊ฒ ์ต๋๋ค.
HTML, CSS ์ฝ๋๋ ์๋ณธ ์์ค ๋ณด๊ธฐ ๋ฒํผ์ ๋๋ฌ ํ์ธํด์ฃผ์ธ์.
์, ๊ทธ๋ผ ์์ํด๋ณผ๊น์?
JS ์ฝ๋
์ฌ๋ผ์ด๋ ์ดํํธ 02์ JS ์์ค์ ๋ถ์ฐ ์ค๋ช (์ฃผ์ ์ฒ๋ฆฌ๋จ)์ด๋ค.
const sliderWrap = document.querySelector(".slider__wrap");
const sliderImg = document.querySelector(".slider__img"); // ๋ณด์ฌ์ง๋ ์์ญ
const sliderInner = document.querySelector(".slider__inner"); // ์์ง์ด๋ ์์ญ
const slider = document.querySelectorAll(".slider"); // ์ด๋ฏธ์ง
let currentIndex = 0; // ํ์ฌ ์ด๋ฏธ์ง
let sliderCount = slider.length; // ์ด๋ฏธ์ง ๊ฐ์
sliderInner.style.transition = "all 0.6s"
//sliderInner.style.transform += "translateX(0px)"; 800 * 0
//sliderInner.style.transform += "translateX(-800px)"; 800 * 1
//sliderInner.style.transform += "translateX(-1600px)"; 800 * 2
//sliderInner.style.transform += "translateX(-2400px)"; 800 * 3
//sliderInner.style.transform += "translateX(-3200px)"; 800 * 4
setInterval(() => {
currentIndex = (currentIndex + 1) % sliderCount; //123401234...
// if(currentIndex < 5) {
// currentIndex++;
// } else {
// currentIndex = 0;
// }
// (currentIndex < 4) ? currentIndex++ : currentIndex = 0;
console.log(currentIndex);
sliderInner.style.transform = "translateX("+ -800 * currentIndex + "px)"
}, 2000);
JS ์ฝ๋ : ๊ฐ๋ตํ
<script>
const sliderInner = document.querySelector(".slider__inner"); // ์์ง์ด๋ ์์ญ
const slider = document.querySelectorAll(".slider"); // ์ด๋ฏธ์ง
let currentIndex = 0; // ํ์ฌ ์ด๋ฏธ์ง
sliderInner.style.transition = "all 0.6s"; // 0.6์ด์ฉ ๋ณํ์ฃผ๊ธฐ
setInterval(() => {
currentIndex = (currentIndex + 1) % slider.length;
sliderInner.style.transform = "translateX("+ -800 * currentIndex +"px)";
}, 2000);
</script>
GSAP ์ฝ๋
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.11.0/gsap.min.js"></script>
<script>
const slider = document.querySelectorAll('.slider'); // ์ด๋ฏธ์ง
let currentIndex = 0;
//let sliderCount = slider.length;
setInterval(() => {
currentIndex = (currentIndex + 1) % ".slider".length;
// to ์ ํ์ document.write ์์จ๋ ์ธ์ ๊ฐ๋ฅ
// ๋ฐ์์ ๊ฐ์ ๊ตฌ์กฐ๋ก ์จ์ค ๊ฒ
gsap.to(".slider__inner", {
//duration : 0.6,
x : -800 * currentIndex, // ๊ฐ์ฒด ์คํ์ผ ๊ตฌ์กฐ
});
}, 2000);
</script>
jQuery ์ฝ๋
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script>
let currentIndex = 0;
setInterval(() => {
// $ = document.querySelector ๊ฐ๋ตํ๋ ํํ
currentIndex = (currentIndex + 1) % $(".slider").length;
// $(".slider__inner").css(
// "transform", "translateX("+ -800 * currentIndex + "px)"
// );
$(".slider__inner").css("position", "relative");
$(".slider__inner").animate({
left: -800 * currentIndex
}, 600);
}, 2000);
</script>
๋ฐ์ํ
๋๊ธ