vue2.0里使用swiper(类似于广告例子)

图例
在这里插入图片描述

安装
npm install swiper@3 --save-dev
在main.js里引入

import 'swiper/dist/css/swiper.min.css'
import 'swiper/dist/js/swiper.min'

使用html

<div class="box">
      <div class="swiper-container gallery-top">
        <div class="swiper-wrapper">
            <div class="swiper-slide" v-for="(item,i) in 10" :key="i">
              <img src="/static/logo.png" alt="">
            </div>
          </div>
        <!-- Add Arrows -->
        <div class="swiper-button-next swiper-button-white"></div>
        <div class="swiper-button-prev swiper-button-white"></div>
      </div>
      <div class="swiper-container gallery-thumbs">
          <div class="swiper-wrapper">
            <div class="swiper-slide" v-for="(item,i) in 15" :key="i">
              <img src="/static/logo.png" alt="">
            </div>
          </div>
      </div>
    </div>
  
  

js

mounted() {
	var galleryTop = new Swiper('.gallery-top', {
		nextButton: '.swiper-button-next',
		prevButton: '.swiper-button-prev',
	});
	var galleryThumbs = new Swiper('.gallery-thumbs', {
	   centeredSlides: true,
	   slidesPerView: 'auto',
	   touchRatio: 0.2,
	   slideToClickedSlide: true,
	});
    galleryTop.params.control = galleryThumbs;
    galleryThumbs.params.control = galleryTop;
 }

css

.gallery-top {
    width: 500px;
    height: 500px;
    margin: auto;
    background-color: #f4f2f1;
    .swiper-slide {
        background-size: cover;
        background-position: center;
        width: 100%;
        height: 100%;
        display: flex;
        justify-content: center;
        align-items: center;
        img{
          max-height: 100%;
          max-width: 100%;
        }
    }
    }
    .gallery-thumbs {
        width: 500px;
        height: 200px;
        margin: auto;
        background-color: #000;
        box-sizing: border-box;
        margin-top: 100px;
        padding: 20px;
        .swiper-slide {
            width: 200px;
            height: 160px;
            display: flex;
            justify-content: center;
            align-items: center;
            margin-right: 20px;
            img{
            max-height: 100%;
            max-width: 100%;
            }
        }
    }
    .gallery-thumbs .swiper-slide-active {
        border: 2px solid #D82B03;
    }

注意:
若图片为后台获取到的前进后退按钮则失去效果
解决方法

**//在Swiper初始化时添加observer:true(此方法不适用在判断图片集合不为空时显示)**
new Swiper('.gallery-thumbs', {
   observer:true, //修改swiper自己或子元素时自动初始化swiper
    observeParents:true, //修改swiper的父元素时自动初始化swiper
});
**//或者**
在获取到数据后
_this.$nextTick(()=>{
	//初始化swiper
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值