快速入门在Vue中使用滑动插件Swiper

前言

swiper

开源、免费、强大的滑动插件。

swiper中文网

https://www.swiper.com.cn/

Swiper4中文API

https://www.swiper.com.cn/api/index.html

Vue-Awesome-Swipwe

基于Swiper、适用于Vue的轮播组件,支持服务端和单页引用。

插件npm

https://www.npmjs.com/package/vue-awesome-swiper

在线demo

https://surmon-china.github.io/vue-awesome-swiper/

效果

场景

home.vue是仿音乐播放器的主页面,在home界面引入了Swiper_Banner.vue这个组件用来实现轮播图。

在Swiper_Banner.vue,滚动的图片已经写死,放在assets下的img目录下。

项目目录结构

实现

1.安装vue-awesome-swiper插件

项目根目录下打开命令行输入:

npm install --save vue-awesome-swiper

或者

cnpm install --save vue-awesome-swiper

2.home.vue中引入Swiper_Banner.vue组件

打开home.vue

引入组件

import SwiperBanner from "../components/Swiper_Banner"

其中../表示上级目录。

注入组件

export default {
    name:"home",
    components:{
    SwiperBanner
    }
}

引用组件

<template lang="html">
  <div class="">
    <TodayRecommend/>
    <NewsMusic />
    <SwiperBanner/>
  </div>
</template>

home.vue 完整代码

<template lang="html">
  <div class="">
    <TodayRecommend/>
    <NewsMusic />
    <SwiperBanner/>
  </div>
</template>

<script>
import TodayRecommend from "../components/Today_Recommend"
import NewsMusic from "../components/News_Music"
import SwiperBanner from "../components/Swiper_Banner"
export default {
    name:"home",
    components:{
    TodayRecommend,
    NewsMusic,
    SwiperBanner
    }
}
</script>

<style lang="css">
</style>

3.在Swiper_Banner.vue中配置轮播图

打开轮播图组件Swiper_Banner.vue

首先引入swiper以及swiper的样式文件

(局部注册:参照:https://www.npmjs.com/package/vue-awesome-swiper

import 'swiper/dist/css/swiper.css'
import { swiper, swiperSlide } from 'vue-awesome-swiper'

进行组件引入声明

 components: {
    swiper,
    swiperSlide
  }

页面添加swiper组件元素

参照:

https://www.npmjs.com/package/vue-awesome-swiper

下的SPA:

<!-- The ref attr used to find the swiper instance -->
<template>
  <swiper :options="swiperOption" ref="mySwiper" @someSwiperEvent="callback">
    <!-- slides -->
    <swiper-slide>I'm Slide 1</swiper-slide>
    <swiper-slide>I'm Slide 2</swiper-slide>
    <swiper-slide>I'm Slide 3</swiper-slide>
    <swiper-slide>I'm Slide 4</swiper-slide>
    <swiper-slide>I'm Slide 5</swiper-slide>
    <swiper-slide>I'm Slide 6</swiper-slide>
    <swiper-slide>I'm Slide 7</swiper-slide>
    <!-- Optional controls -->
    <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>
    <div class="swiper-scrollbar"   slot="scrollbar"></div>
  </swiper>
</template>
 
<script>
  export default {
    name: 'carrousel',
    data() {
      return {
        swiperOption: {
          // some swiper options/callbacks
          // 所有的参数同 swiper 官方 api 参数
          // ...
        }
      }
    },
    computed: {
      swiper() {
        return this.$refs.mySwiper.swiper
      }
    },
    mounted() {
      // current swiper instance
      // 然后你就可以使用当前上下文内的swiper对象去做你想做的事了
      console.log('this is current swiper instance object', this.swiper)
      this.swiper.slideTo(3, 1000, false)
    }
  }
</script>

这里只要分页器,别的属性不配置,

配置参数参照官方API参数:

https://www.swiper.com.cn/api/pagination/362.html

此处为:

<template lang="html">
  <div class="banner">
    <swiper :options="swiperOption">
      <swiper-slide>
        <img src="../assets/img/b1.jpg" alt="">
      </swiper-slide>
      <swiper-slide>
        <img src="../assets/img/b2.jpg" alt="">
      </swiper-slide>
      <swiper-slide>
        <img src="../assets/img/b3.jpg" alt="">
      </swiper-slide>
      <div class="swiper-pagination"  slot="pagination"></div>
    </swiper>
  </div>
</template>

配置swiper组件属性

export default {
  data(){
    return{
      swiperOption:{
        pagination: {
          el: '.swiper-pagination',//swiper的分页器
        },
        autoplay:{
          delay:1000,//间隔一秒滚动一次
        }//自动滚动
      }
    }
  },

Swiper_Banner.vue完整代码

<template lang="html">
  <div class="banner">
    <swiper :options="swiperOption">
      <swiper-slide>
        <img src="../assets/img/b1.jpg" alt="">
      </swiper-slide>
      <swiper-slide>
        <img src="../assets/img/b2.jpg" alt="">
      </swiper-slide>
      <swiper-slide>
        <img src="../assets/img/b3.jpg" alt="">
      </swiper-slide>
      <div class="swiper-pagination"  slot="pagination"></div>
    </swiper>
  </div>
</template>

<script>

import 'swiper/dist/css/swiper.css'
import { swiper, swiperSlide } from 'vue-awesome-swiper'

export default {
  data(){
    return{
      swiperOption:{
        pagination: {
          el: '.swiper-pagination',//swiper的分页器
        },
        autoplay:{
          delay:1000,//间隔一秒滚动一次
        }//自动滚动
      }
    }
  },
  components: {
    swiper,
    swiperSlide
  }
}
</script>

<style scoped>

.banner{
  padding: 10px;
}

</style>

猜你喜欢

转载自blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/84594356
今日推荐