결과 화면
버전
vue: 2.7.10
nuxt: 2.15.8
vue, nuxt 버전 2.x.x 기준으로 작성한 글이기 때문에 버전 3.x.x에서는 동작하지 않을 수 있다.
2023.11 기준 스와이퍼 버전 11까지 나왔다.
최신 버전의 뷰 스와이퍼에 대한 자세한 설명은 공식 문서를 참고한다.
1. swiper, vue-awesome-swiper 패키기 설치하기
swiper와 vue-awesome-swiper 패키지를 설치한다.
반드시 해당 버전으로 설치한다.
yarn add swiper@5.4.5
yarn add vue-awesome-swiper@4.1.1
또는
npm install swiper@5.4.5
npm install vue-awesome-swiper@4.1.1
2. Swiper, SwiperSlide 컴포넌트 사용하기
- pages/swiper.vue
- Swiper, SwiperSlide 컴포넌트를 import 한다.
- swiper.css를 import 한다.
- <Swiper>와 <SwiperSlier> 컴포넌트를 사용해 마크업을 한다.
이때 prev, next 버튼과 페이지네이션은 <Swiper> 컴포넌트 밖에 작성한다. (안에 있으면 SwiperSlide와 같이 움직이기 때문에 밖으로 뺀다.) - kvSwiperOptions을 작성한다.
가장 많이 사용하는 속성은 slidesPerView(슬라이드가 몇 개씩 노출되는지), spaceBetween(슬라이드 간의 간격)이고, 이외의 다양한 속성들은 공식 문서를 참고한다. (https://swiperjs.com/demos) - swiper.css는 기본적인 스타일만 제공하기 때문에 크기, 배경, 글자, 위치 등은 css를 추가로 작성한다.
<template>
<section class="kv-swiper">
<Swiper :options="kvSwiperOptions">
<SwiperSlide>Slide 1</SwiperSlide>
<SwiperSlide>Slide 2</SwiperSlide>
<SwiperSlide>Slide 3</SwiperSlide>
<SwiperSlide>Slide 4</SwiperSlide>
<SwiperSlide>Slide 5</SwiperSlide>
</Swiper>
<div class="swiper-button-prev"></div>
<div class="swiper-button-next"></div>
<div class="swiper-pagination"></div>
</section>
</template>
<script>
import { Swiper, SwiperSlide } from 'vue-awesome-swiper'
import 'swiper/css/swiper.css'
export default {
name: 'SwiperPage',
components: {
Swiper,
SwiperSlide
},
data() {
return {
kvSwiperOptions: {
slidesPerView: 2,
spaceBetween: 20,
loop: true,
navigation: {
prevEl: '.swiper-button-prev',
nextEl: '.swiper-button-next'
},
pagination: {
el: '.swiper-pagination'
}
}
}
}
}
</script>
<style lang="scss" scoped>
.kv-swiper {
position: relative;
height: 300px;
.swiper-container {
height: 100%;
.swiper-slide {
...
}
}
.swiper-button-prev,
.swiper-button-next {
&::after {
color: #333;
}
}
.swiper-pagination::v-deep {
bottom: -30px;
width: 100%;
.swiper-pagination-bullet {
margin: 0 5px;
cursor: pointer;
}
.swiper-pagination-bullet-active {
background-color: #333;
}
}
}
</style>
'Vue, Nuxt > 문법' 카테고리의 다른 글
[Vue/Nuxt] 뷰 vue-awesome-swiper 이용해서 autoplay, progress bar 만들기 (1) | 2023.11.08 |
---|---|
[Vue/Nuxt] 뷰 swiper와 svg를 이용해서 autoplay, progress 페이지네이션 만들기 (vue swiper custom pagination) (0) | 2023.11.07 |
[Vue/Nuxt] 뷰 mounted() 이용해서 이미지에 효과 넣기 (0) | 2023.11.02 |
[Vue/Nuxt] 뷰 셀렉트 박스 만들기 (셀렉트 박스 커스텀하기, custom select box) (1) | 2023.11.02 |
[Vue/Nuxt] 뷰 아코디언 만들기 (BaseAccordion 만들기) (0) | 2023.11.01 |