vue中使用swiper轮播,中间显示默认主图,两端显示部分

先放官方文档

swiper官方文档

安装swiper

npm i swiper

全局引用css文件和局部引用js文件

在main.js文件中,引用css文件:

import 'swiper/swiper-bundle.min.css'

在用到swiper的vue文件中,引用js文件:

import Swiper from "swiper/swiper-bundle.min.js"

在这里插入图片描述

以下为代码区域

<template>
    <div style="overflow: hidden">
      <div class="swiper-container" >
        <div class="swiper-wrapper" >
          <div class="swiper-slide" v-for="(item, index) in data" :key="index">
          	// 我这里是后台返回的数据,用v-for直接进行循环渲染就可以了,要是用本地图片,就正常添加img的src属性就可以,有几张图,就添加几组<div class="swiper-slide"><img src="../assets/XXX.png" /></div>就行。
          	<img :src="item.url" />
          </div>
        </div>
      </div>
    </div>
</template>

<script>
import Swiper from "swiper/swiper-bundle.min.js"

  export default {
    components: {},
    data(){
      return {
      }
    },
    mounted() {
      this.$nextTick(()=>{
	    this.initSwiper()
	  })
    },
	methods: {
	  // 初始化广告轮播
      initSwiper () {
        const _this = this
        new Swiper('.swiper-container', {
          direction: 'horizontal',  // 轮播图轮播方向,horizontal为横向,
          loop: true,  // 循环模式选项
          spaceBetween: 10,  // 左右距离,每一张图之间的间距,不用在css中设置margin了
          slidesPerView: 'auto',  // 默认一个屏幕显示几张图,必须auto!要不轮播到最后一张图时,右侧会是空白,很丑!
          centeredSlides: true, // 每屏,居中显示
          autoplay:true,  // 自动轮播
          autoplay: {
            disableOnInteraction: false,  // 操作swiper之后,是否禁止autoplay,默认为true,如不写此属性,在点击轮博或者活动轮播后,会停止自动轮播
          },
          // 下面两个属性一般是数据从后台请求后或者点击轮播图片跳转页面后,需要初始化swiper
          observer:true,  // 修改swiper自己或子元素时,自动初始化swiper
          observeParents:true,  // 修改swiper的父元素时,自动初始化swiper
          // 如果需要分页器
          // pagination: {
          //   el: '.swiper-pagination',
          // },
        })
      },
	},
  }
</script>

<style >
.swiper-container {
  overflow: visible!important;
  width: 90%;  // 设置每个轮播的宽度,数值越小,两边显示的会越大
  height: 108px;
}
.swiper-container .swiper-wrapper .swiper-slide{ 
  border-radius: 10px;
}
.swiper-container .swiper-wrapper .swiper-slide img{ 
  width: 100%;
  height: 100%;
}
</style>

效果图如下
在这里插入图片描述
我的需求是图片等高,但有一些显示中间图大,两边小,只需要在我上面的基础上,加入以下的css代码就可:

.swiper-container .swiper-wrapper .swiper-slide-prev{ 
  margin-top: XXXpx; 
  height: XXXpx!important;
}
.swiper-container .swiper-wrapper .swiper-slide-prev img{ 
  height: XXXpx!important;
}
.swiper-container .swiper-wrapper .swiper-slide-next{ 
  margin-top: XXXpx; 
  height: XXXpx!important;
}
.swiper-container .swiper-wrapper .swiper-slide-next img{ 
  height: XXXpx!important;
}
根据自己的需求,来调整XXX的大小

因为我自己做的是等高的效果,没有中间大的效果图,我去网上借了别人的一张中间大,两边小的效果图(图是扣的别人的哈)
在这里插入图片描述
基本就是这样了,写的不太好,要是有不对的地方请大家提出来哈,欢迎大家一起交流交流!

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值