编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

在Vue 3中使用Swiper插件实现轮播图效果

wxchong 2024-07-18 09:35:04 开源技术 9 ℃ 0 评论

Swiper 是一款免费以及轻量级的移动设备触控滑块的js框架。

Swiper 完全免费并开源(MIT Licensed),无论你使用在个人网站或商业网站,都无需付费。

中文网址:https://www.swiper.com.cn/

安装Swiper

npm i swiper -D

版本:swiper@8.4.7

将 swiper 包装成组件

/src/components/swiper.vue

<script setup>
import { Swiper, SwiperSlide } from 'swiper/vue'
import { Autoplay, Pagination, Navigation, Scrollbar } from 'swiper'
const modules = [Autoplay, Pagination, Navigation, Scrollbar]
import 'swiper/css'
import 'swiper/css/navigation'
import 'swiper/css/pagination'
import 'swiper/css/scrollbar'
const props = defineProps({
    list: Array,
})
const navigation = {
    nextEl: '.swiper-button-next',
    prevEl: '.swiper-button-prev',
}
// 切换时触发
const onSlideChange = swiper => {
    // console.log(swiper.activeIndex)
}
const prevEl = () => {
    // console.log('上一张');
}
const nextEl = () => {
    // console.log('下一张');
}
</script>
<template>
    <swiper
        :modules="modules"
        :loop="true"
        :slides-per-view="1"
        :space-between="50"
        :autoplay="{ delay: 4000, disableOnInteraction: false }"
        :navigation="navigation"
        :pagination="{ clickable: true }"
        :scrollbar="{ draggable: false }"
        class="swiper-box"
        @slideChange="onSlideChange"
    >
        <template v-for="(item, index) in props.list" :key="index">
            <swiper-slide>
                <div class="slide">{{ item }}</div>
            </swiper-slide>
        </template>
        <!-- <div class="swiper-button-prev" @click="prevEl"></div>
        <div class="swiper-button-next" @click="nextEl"></div> -->
        <!-- 如果需要滚动条 -->
        <div class="swiper-scrollbar"></div>
    </swiper>
</template>
<style lang="less" scoped>
.swiper-box {
    width: 100%;
    height: 62vw;
    background-color: aquamarine;
    .slide {
        width: 100%;
        height: 100%;
        display: inline-flex;
        justify-content: center;
        align-items: center;
        font-size: 32px;
    }
}
</style>

在组件中使用包装成swiper组件

<script setup>
import Swiper from '/src/components/swiper.vue'
import { ref } from 'vue'
const swiperList = ref(['Slide A', 'Slide B', 'Slide C'])
</srcipt>
<template>
	<Swiper :list="swiperList"></Swiper>
</template>

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表