全面的前端编程教程 - 秘密武器开发者中心

热搜:m1 代理 前端 301

在vue中正确的使用swiper

2024-01-11 23:27:55

首先安装swiper

cnpm install swiper@5.4.5 -S
cnpm install vue-awesome-swiper@3.1.3 -S

二、在main.js中引入swiper.css

import 'swiper/css/swiper.css'

三、在组件中使用

1、引入必要的组件

import { swiper, swiperSlide } from "vue-awesome-swiper";

2、注册子组件

components: {
    swiper,
    swiperSlide
}

3、data中添加

data() {
    return {
      swiperOptions: {
        loop: true,
        speed: 2000,
        autoplay: {
          delay: 3000,

          stopOnLastSlide: false,
          disableOnInteraction: false,
        },
        // 显示分页
        pagination: {
          el: ".swiper-pagination",
          clickable: true, //允许分页点击跳转
        },
        // 设置点击箭头
        navigation: {
          nextEl: ".swiper-button-next",
          prevEl: ".swiper-button-prev",
        },
        // 修改默认点击左右箭头样式
       // navigation: {
         // nextEl: ".swiper-button-next",
          //prevEl: ".swiper-button-prev",
        //},
      },
    };
  },

4、template 中使用

①template 箭头放到轮播图内

<template>
  <div class="wrapper">
    <swiper ref="mySwiper" v-bind:options="swiperOptions">
      <swiper-slide v-for="(item, index) in 5" v-bind:key="index">
          {{item}}
      </swiper-slide>

      <div class="swiper-pagination" slot="pagination"></div>
      <div class="swiper-button-prev" slot="button-prev"></div>
      <div class="swiper-button-next" slot="button-next"></div>
    </swiper>
  </div>
</template>

②template 箭头放到轮播图外

 <template>
  <div class="wrapper">
    <swiper ref="mySwiper" v-bind:options="swiperOptions">
      <swiper-slide v-for="(item, index) in 5" v-bind:key="index">
          {{item}}
      </swiper-slide>

      <div class="swiper-pagination" slot="pagination"></div>
    </swiper>
     <div class="swiper-button-prev swiper-button-prevsp" slot="button-prev"></div>
      <div class="swiper-button-next swiper-button-nextsp" slot="button-next"></div>
  </div>
</template>

5、修改默认样式

.swiper-container {
        background: #f00;
   }
.swiper-slide {
        height: 180px;
   }


//  若是修改默认样式,以下内容必须填写
.wrapper{
    position: relative;
}
.wrapper .swiper-button-nextsp,
.wrapper .swiper-button-prevsp {
    position: absolute;
    width: 40px;
    height: 40px;
    display: inline-block;
    text-align: center;
    line-height: 40px;
    cursor: pointer;
    z-index: 22222;
}
.wrapper .swiper-button-prevsp {
    background: url("~@/assets/images/left.png") no-repeat center center;
    left: 0;
    top: 50%;
  transform: translateY(-50%);
}
.wrapper .swiper-button-prevsp::after,.wrapper  .swiper-button-nextsp::after{
    content: '';
}
.wrapper .swiper-button-prevsp:hover {
    background: url("~@/assets/images/leftCur.png") no-repeat center center;
}
.wrapper .swiper-button-nextsp {
    background: url("~@/assets/images/right.png") no-repeat center center;
    right: 0;
    top: 50%;
  transform: translateY(-50%);
} 
.wrapper .swiper-button-nextsp:hover { background: url("~@/assets/images/rightCur.png") no-repeat center center; }