首页 > 其他分享 >需求:vue3+swiper+ts实现轮播图(中间主体轮播,左右各显示部分)

需求:vue3+swiper+ts实现轮播图(中间主体轮播,左右各显示部分)

时间:2023-10-18 17:33:09浏览次数:32  
标签:pagination 轮播 .. image ts vue3 import swiper

一、下载安装swiper

安装:pnpm install swiper
使用你熟悉的方式来安装(yarn npm cnpm)

二、在项目中引入swiper

1.main.js文件

点击查看代码
import 'swiper/swiper-bundle.css';
import "swiper/css"

image

2.页面代码实现

点击查看代码
<script setup>
import { ref, reactive } from 'vue'
import { Swiper, SwiperSlide } from "swiper/vue"
import { Navigation, Pagination, Scrollbar, A11y, Autoplay } from 'swiper/modules';
import "swiper/css"
import image1 from "../assets/image/banner1.jpg"
import image2 from "../assets/image/banner2.jpg"
import image3 from "../assets/image/banner3.jpg"
import image4 from "../assets/image/banner4.jpg"
import LeftArrow from "../assets/image/left.png"
import RightArrow from "../assets/image/right.png"
const state = reactive({
    LeftArrow: LeftArrow,
    RightArrow: RightArrow,
    banner: [
        {
            url: '',
            image: image1,
        },
        {
            url: '',
            image: image2,
        },
        {
            url: '',
            image: image3,
        },
        {
            url: '',
            image: image4,
        },

    ],
})
const navigation = ref({
    prevEl: ".leftArrow",
    nextEl: ".rightArrow",
});
const pagination = ref({
    el: ".swiper-pagination",
    clickable: true, //允许分页点击跳转
})
const modules = [Autoplay, Pagination, Navigation, Scrollbar]



</script>
<template>
    <div class="containers">
	// :slidesPerView="'auto'" 解决页面循环轮播出现空白的问题
        <swiper :modules="modules" 
            :loop="true" 
            :slides-per-view="1" 
            :space-between="0" 
            :speed=1000
            :autoplay="{ delay: 3000, disableOnInteraction: false }" 
            :navigation="navigation" 
            :slidesPerView="'auto'"
            loopFillGroupWithBlank="true" 
            :pagination="pagination" 
            :centeredSlides="true" 
            class="swiper-container"
            @slideChange="onSlideChange">
            <swiper-slide v-for="(item, i) in  state.banner " :key="i">
                <a href="">
                    <div class="banner_img" :style="{ backgroundImage: `url(${item.image})` }"> </div>
                </a>
            </swiper-slide>
            <img ref="prevRef" class="leftArrow w-28px h-52px" :src="state.LeftArrow" />
            <img ref="nextRef" class="rightArrow w-28px h-52px" :src="state.RightArrow" />

        </swiper>
    </div>
</template>
  
<style  scoped>
.containers {
    width: 100%;
	//就这行比较有用
    overflow: hidden !important;
    display: flex;
    justify-content: center;
    position: relative;
}

.swiper-container {
    //这行也是
    overflow: visible !important;
    width: 1200px;
    height: 550px;
    position: relative;
}

.banner_img {
    width: 1200px;
    background-size: 100%, 100%;
    height: 5500px;
}

.leftArrow {
    position: absolute;
    top: 45%;
    left: -34px;
    z-index: 1000;
    cursor: pointer;
}

.rightArrow {
    position: absolute;
    top: 45%;
    right: -34px;
    z-index: 1000;
    cursor: pointer;
}
//页码样式穿透 也可自定义页码
:deep(.swiper-pagination) {
    bottom: 20px;
}
:deep(.swiper-pagination-bullet) {
    border: solid 1px #999;
    margin: 0 6px;
}
:deep(.swiper-pagination-bullet-active) {
    background: #4d4d4d;
}
:deep(.swiper-pagination-bullet:hover) {
    background: #4d4d4d;
    opacity: 0.6;
}
</style>
  
以上即可完成一个简单的轮播

标签:pagination,轮播,..,image,ts,vue3,import,swiper
From: https://www.cnblogs.com/lingern/p/17772940.html

相关文章

  • TSINGSEE风电场可视化智能视频集控监管系统,助力风电场无人值守监管新模式
    一、方案背景风能作为一种清洁的可再生能源,对于我国实现“双碳”目标尤为重要。风电场一般地处偏远地区,占地广、面积大,并且风机分布区域广泛、现场运行设备巡视难度大、及时性差。原有的监管系统智能化水平低,满足不了日常的生产安全、财产保障、运维管理等需求,因此,迫切需要构建一......
  • Vite+Vue3 加载速度优化
    可以考虑从以下几个方面优化。整体思路:1.减小打包体积。2.异步加载。静态资源拆分打包在常规打包方法下,所有的第三方依赖将会都打包在一个vendor.js文件里,首次打开页面时,服务器会先加载这个大文件,导致白屏时间过长。而我们打包时,事先将依赖拆分成很多小文件各自进行打包,便可......
  • Go - Creating Subtests to Have Finer Control Over Groups of Test Cases
    Problem: Youwanttocreatesubtestswithinatestfunctiontohavefinercontrolovertestcases.Solution: Usethet.Runfunctiontocreatesubtestswithinatestfunction.Subtestsextendtheflexibilityoftestfunctionstoanotherleveldown. When......
  • TSINGSEE智慧港口可视化智能监管解决方案,助力港口码头高效监管
    一、方案背景全球经济一体化进程以及国际市场的不断融合,使得港口码头成为了大型货运周转中心,每天数以百计的大型货轮、数以千计的大型集装箱、数以万计的人员流动。港口作为货物、集装箱堆放及中转机构,具有昼夜不歇、天气多变、环境恶劣等特性,安全保卫工作显得更加重要。在如此异常......
  • HarmonyOS/OpenHarmony原生应用-ArkTS万能卡片组件Slider
    滑动条组件,通常用于快速调节设置值,如音量调节、亮度调节等应用场景。该组件从APIVersion7开始支持。无子组件一、接口Slider(options?:{value?:number,min?:number,max?:number,step?:number,style?:SliderStyle,direction?:Axis,reverse?:boolean})从APIversion......
  • RTSP流媒体服务器EasyNVR视频云平台之视频观感体验的优化配置
    随着互联网基础设施建设的发展,4G/5G/NB-IoT等网络技术的广泛应用,视频监控需求越来越多,而传统监控行业和摄像机直播系统受到使用区域限制、实施成本高、入口门槛高等问题的困扰,无法有效利用优质云资源进行监控云平台的搭建。此时,EasyNVR产品应运而生,成为了解决以上痛点的完美方案......
  • Qt 文件目录操作 QDir、QFile、QTemporaryDir/File、QTextStream、QDataStream、QSett
    摘要:  这一篇Qt博文主要介绍在Qt开发中对于文件目录操作相关处理的时候可以用到哪些类,这些类的作用是什么,大致应该怎么用,类的常用类方法及相关需要注意的事项等等,更加细致的需根据类名查找翻阅官方帮助文档。  QT提供的与文件和目录操作相关的类有以下几个:QDir:类提供对......
  • echarts dataZoom 文本显示不完整
    显示不完整是这样的预期结果是这样的代码dataZoom:[{show:true,xAxisIndex:[0,1],type:"slider",top:"72%",//文本换行是在这里处理//this.chartData.xdata[value]的格式是这样的"2022-02-2300:00:00"所以做如下处理labelFormatter:(value......
  • 关于一款软硬一体的RTSP/Onvif协议视频平台EasyNVR安防视频监控平台的介绍
    EasyNVR是一种网络视频录像机(NetworkVideoRecorder),属于软硬一体的产品,支持RTSP/ONVIF协议接入,体积小巧,通电连网即可成功运行,部署操作简单,低功耗,支持7x24小时不间断运行,省去自建视频服务器的高额费用,专属视频服务,免除了与其他硬件的相互影响,可云端运维。作为一种专业的视频监......
  • [911] Read Data from Google Sheets into Pandas without the Google Sheets API (.g
    ref:ReadDatafromGoogleSheetsintoPandaswithouttheGoogleSheetsAPIimportpandasaspdsheet_id="1XqOtPkiE_Q0dfGSoyxrH730RkwrTczcRbDeJJpqRByQ"sheet_name="Sheet1"url=f"https://docs.google.com/spreadsheets/d/{sheet......