美文网首页
VUE 脚手架项目中轮播图的实现

VUE 脚手架项目中轮播图的实现

作者: Maira | 来源:发表于2018-06-14 11:33 被阅读0次

VUE项目中轮播图的实现 vue-awesome-swiper

——依赖插件vue-awesome-swiper,PC端应用

一款基于 Swiper4、适用于 Vue 的轮播组件,支持服务端渲染和单页应用。官方GitHub参考链接

功能实现:

  • 自动轮播
  • 无限循环
  • 鼠标进入停止轮播
  • 鼠标移出开始轮播

注:初学vue,小白鼠一枚,有错误请指点,勿喷 勿喷, 手动比心 ❤


安装

方法一:CDN 安装

  <link rel="stylesheet" href="path/to/swiper/dist/css/swiper.css"/>
  <script type="text/javascript" src="path/to/swiper.js"></script>
  <script type="text/javascript" src="path/to/vue.min.js"></script>
  <script type="text/javascript" src="path/to/dist/vue-awesome-swiper.js"></script>
  <script type="text/javascript">
      Vue.use(window.VueAwesomeSwiper)
  </script>

方法二: npm安装 *

使用 vue-cli 时推荐

npm install vue-awesome-swiper --save

注:其他方法请 参考官网


main.js文件中

引入文件,全局配置

方法一:局部引入:
        import 'swiper/dist/css/swiper.css'
        import { swiper, swiperSlide } from 'vue-awesome-swiper'
 
        export default {
            components: {
                    swiper,
                    swiperSlide
            }
        }
方法二:全局引入:
    import Vue from 'vue'
    import VueAwesomeSwiper from 'vue-awesome-swiper'
    import 'swiper/dist/css/swiper.css'
 
    Vue.use(VueAwesomeSwiper, /* { default global options } */)

轮播组件中 "carousel.vue"

使用方法:

视图

<template>
  <swiper class="swiper" :options="swiperOption"  ref="mySwiper">
    <!-- slides -->
    <swiper-slide style="background: #007aff"> I'm slide 1</swiper-slide>
    <swiper-slide style="background: yellow"> I'm slide 2</swiper-slide>
    <swiper-slide style="background: red"> I'm slide 3</swiper-slide>
    <swiper-slide style="background: green"> I'm slide 4</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>
  </swiper>
</template>

script

<script>
import 'swiper/dist/css/swiper.css'
import { swiper, swiperSlide } from 'vue-awesome-swiper'
export default {
    data(){
        return {
            //设置属性
            swiperOption:{
                //显示分页
                pagination: {
                    el: '.swiper-pagination',
                    clickable:true
                },
                //切换模式  横屏或者竖屏
                // direction : 'vertical',
                //设置自动播放速度
                autoplay: {
                    disableOnInteraction: false,
                    delay:4000
                },
                //开启无限循环
                loop:true,
                //设置点击箭头
                paginationClickable :true,
                prevButton:'.swiper-button-prev',
                nextButton:'.swiper-button-next',
                //设置同屏显示的数量,默认为1,使用auto是随意的意思。
                slidesPerView:1,
                //开启鼠标滚轮控制Swiper切换。可设置鼠标选项,或true使用默认值。
                mousewheel:true ,
                //默认为false,普通模式:slide滑动时只滑动一格,并自动贴合wrapper,设置为true则变为free模式,slide会根据惯性滑动可能不止一格且不会贴合。
                // freeMode:true
            }
        }
    },
    components:{
        swiper,
        swiperSlide
    }
}  
</script>

carousel.vue 实例代码

<template>
  <swiper class="swiper" :options="swiperOption"  ref="mySwiper">
    <!-- slides -->
    <swiper-slide style="background: #007aff"> I'm slide 1</swiper-slide>
    <swiper-slide style="background: yellow"> I'm slide 2</swiper-slide>
    <swiper-slide style="background: red"> I'm slide 3</swiper-slide>
    <swiper-slide style="background: green"> I'm slide 4</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>
  </swiper>
</template>
<script>
  import {swiper, swiperSlide} from 'vue-awesome-swiper'
  import 'swiper/dist/css/swiper.css'

  export default {
    name: 'carrousel',
    data() {
      return {
        swiperOption: {
          // spaceBetween: 30, //板块间距
          loop: true, //无缝轮播
          centeredSlides: true,
          autoplay: {  //自动轮播
            delay: 3000,
            disableOnInteraction: false,
          },
          pagination: {
            el: '.swiper-pagination',
            clickable: true,
          },
          navigation: {
            nextEl: '.swiper-button-next',
            prevEl: '.swiper-button-prev',
          }
        }
      }
    },
    components: {
      swiper,
      swiperSlide
    },
    // 如果你需要得到当前的swiper对象来做一些事情,你可以像下面这样定义一个方法属性来获取当前的swiper对象,同时notNextTick必须为true
    computed: {
      swiper() {
        return this.$refs.mySwiper.swiper
      }
    },
    mounted() {
      // 然后你就可以使用当前上下文内的swiper对象去做你想做的事了
      console.log('this is current swiper instance object', this.swiper);
      // this.swiper.slideTo(3, 1000, false)
      console.log('mounted');
      //鼠标覆盖停止自动切换
      this.swiper.el.onmouseover = function () {
        this.swiper.autoplay.stop();
        console.log('stop');
      }
      //鼠标离开开始自动切换
      this.swiper.el.onmouseout = function () {
        this.swiper.autoplay.start();
        console.log('start');
      }
    }
  }
</script>
<style scoped>
  .swiper {
    width: 100%;
    height: 600px;
  }

  swiper-slide {
    width: 100%;
    height: 600px;
  }
</style>

参考网页
更多配置选项请参考 swiper官网
更多vue-awesome-swiper 使用技巧请参考vue-awesome-swiper——Github

相关文章

  • VUE 脚手架项目中轮播图的实现

    VUE项目中轮播图的实现 vue-awesome-swiper ——依赖插件vue-awesome-swiper...

  • Swiper

    vue脚手架中使用swiper实现轮播效果 方法一(npm安装swiper): 方法二(引入swiper插件):

  • Vue脚手架使用swiper轮播图,CV大法好!

    时隔多日 ,我又更新了,今天写一个Vue脚手架swiper轮播图的使用方法。首先在项目内安装swiper vue-...

  • vue-awesome-swiper实现3d轮播图

    vue-awesome-swiper实现3d轮播图 写了好几个有关vue的移动端的项目,好多轮播样式都是3d的,所...

  • Vue插件之vue-awesome-swiper

    vue在移动端开发项目中,使用iview轮播图carousel组件会出现无法滑动的情况解决方式:使用vue-awe...

  • 使用vue-cli搭建vue项目

    vue-cli vue的脚手架 安装脚手架之前需要安装node.js 安装脚手架 安装vue-cli 创建vue项...

  • 2019-04-28

    vue 轮播图组件

  • 用vue写一个轮播图效果

    轮播图在网站中几乎无处不在,占用地方少,交互性好。今天就来聊聊如何用vue实现一个轮播效果。 一、原理在轮播图数组...

  • Vue实现轮播图

    算是复习,因为以前学过,用进废退,这里再重新捋一遍。 Vant的使用 轻量化的vue移动UI组件库Vant的相关使...

  • Vue-Swiper使用

    当我们在vue项目中使用轮播图插件swiper时,直接引入swiper需要消耗大量资源vue-swiper是swi...

网友评论

      本文标题:VUE 脚手架项目中轮播图的实现

      本文链接:https://www.haomeiwen.com/subject/oqaeeftx.html