본문 바로가기

웹3 9일차

{**Tip**}

스와이프 html구조를 삽입해줄 때 swiper-box는 스와이퍼 구조 형제로 타이틀이나 다른 큰 구조가 들어올수도 있기 때문에 항상 만들어줘야 한다.  

 

 


 

[스와이프 한 번에 여러 개 넘기기]

스와이프의 기본 구조는 아래와 같다. 

<div class="swiper-wrapper"></div>의 자식 엘리먼트로 슬라이드 페이지들이 있다. 

화살표 버튼을 눌러 넘어가는 페이지들이 .swiper-slide를 클래스로 가진 엘리먼트들이다. 

아래에는 Slide1~3로 총 세 페이지가 있음을 알 수 있다.

.swiper-wrapper의 자식으로 .swiper-slide가 여러 개 존재함을 확인할 수 있다.
기본적으로 Silde1만 보여주는 스와이퍼의 모습.

 

 

쇼핑몰 사이트에서 볼 수 있는 스와이퍼는 한 번에 여러 개의 상품를 넘긴다. 

어떻게 여러 개를 넘길 수 있게 할 수 있을까?

마켓컬리 사이트의 스와이퍼 부분. 상품을 여러 개 보여주며 화살표 버튼을 눌러 넘기면 한 번에 4개가 넘어간다.

 

 

한 페이지에 여러 개의 박스(쇼핑몰의 경우, 상품)를 만들면 된다.  

화살표 버튼을 눌러 넘기면 한 페이지가 넘겨지지만, 마치 여러 개를 한번에 넘기는 것처럼 보인다. 

.swiper-slide를 클래스로 가진 한 페이지 안에 .pro-box클래스로 한 번 감싼 4개의 .pro-list를 클래스로 가진 요소를 볼 수 있다.

 

 

 

 

[스와이퍼 여러 개 띄우고 한 개씩 넘기기]

스와이퍼를 한 개씩 넘기는 데 화면에는 여러 개 띄우고 싶다면 JS의 스와이퍼 옵션에서 속성값을 설정해주면 된다. 

스와이퍼 라이브러리의 속성에 대해 더 알고 싶다면 공식 홈페이지에서 API에 나와있으니 살펴보자.

 

스와이퍼 화면에 띄우는 페이지의 개수를 조절하는 속성은 slidesPerView이고 속성값으로 원하는 개수의 숫자를 적어주면 된다. 

추가로, 페이지 간의 간격을 설정해 보기 편하게 만들어 줄 수 있다. 

const swiper = new Swiper('.swiper', {
 // 방향, 반복, 네비게이션, 스크롤 등등 다양한 옵션이 있다. 
 
 ...
 
 // 하나의 swiper-wrapper안에 들어갈 swiper-slide의 개수
  slidesPerView: 3,
 // 슬라이드 간격
  spaceBetween: 30,
});

화면에는 3개의 페이지가 보여지고, 한 개씩 넘어가는 스와이퍼

 

 

[스와이퍼 반응형]

사용자에 따라 웹 환경이 다양하다. 

반응형은 웹 페이지 너비에 따라 구조를 유동적으로 변화시켜 사용자가 어떤 환경에서든 편하게 볼 수 있도록 하기 위한 기술이다. 

반응형의 스와이퍼를 만들어 보자. 

 

스와이퍼의 옵션에서 반응형 옵션은 'breakpoints'이다. 

옵션값으로 '반응형 너비': '너비에 따라 차별화된 스와이퍼 옵션'이 들어간다.

차별화된 스와이퍼 옵션은 오른쪽의 조건하에 적용된다.  [윈도우 너비 >= 반응형 너비]

 

간단하게 공식 홈페이지에 있는 JS코드를 가져와서 적용해보자.

빨간색 상자 안에 있는 코드만 복사&붙여넣기하면 된다. 

공식 홈페이지의 API 문서에서 breakpoints속성에 대한 설명과 예제이다.

 

아래의 코드를 참고해보자. 

const swiper = new Swiper('.swiper', {
	
    ...
    
  slidesPerView: 1,
  spaceBetween: 10,
  
  // Responsive breakpoints
  breakpoints: {
    // 1. 윈도우 너비 >= 320px
    320: {
      slidesPerView: 2,
      spaceBetween: 20
    },
    // 2. 윈도우 너비 >= 480px
    480: {
      slidesPerView: 3,
      spaceBetween: 30
    },
    // 3. 윈도우 너비 >= 640px
    640: {
      slidesPerView: 4,
      spaceBetween: 40
    }
  },

	...
  
});

 

 

위의 예제는 윈도우 너비가 320px, 420px, 640px일 때 각각 구조가 달라지도록 되어있다.

 

  윈도우 너비 >= 320px : 화면에 2개의 페이지, 간격 20px

  윈도우 너비 >= 480px : 화면에 3개의 페이지, 간격 30px

  윈도우 너비 >= 640px : 화면에 4개의 페이지, 간격 40px

 

 

 

[유의할점]

반응형 스와이퍼를 적용할 때 유의할 점을 살펴보자.

 

1. 가장 작은 화면에서 슬라이드가 한 개로 나와야 할 때 slidesPerView를 1로 설정,
spaceBetween을 10으로 설정해야 한다. 

2. 스와이퍼 반응형은 ★무조건★ 작은 화면부터 작성 해야한다. 

3. 공식 홈페이지에서 breakpoints 코드를 가져왔을 때 마지막에 작성 되어있는 중괄호에
' }, '←이것처럼 ★콤마★를 반드시 찍어줘야 한다.

 

 

 

 

 

 

 

 

'' 카테고리의 다른 글

웹4 2일차  (0) 2024.06.12
웹4 1일차  (0) 2024.06.11
웹3 8일차  (2) 2024.06.05
웹3 7일차  (0) 2024.06.03
웹3 6일차  (0) 2024.05.29