资讯专栏INFORMATION COLUMN

vue轮播图插件之vue-awesome-swiper

binta / 2976人阅读

摘要:移动端轮播图插件,在使用图形界面插件中的组件无法实现触摸滑动后,转而使用插件安装我这里安装的是下面的这个版本使用全局导入样式的话,我这里有用到分页器,就在全局中引入了样式组件引入在中使用常见的小圆点

移动端轮播图插件,在使用iview图形界面插件中的carousel组件无法实现触摸滑动后,转而使用vue-awesome-swiper插件
1.npm安装
npm i vue-awesome-swiper -S

我这里安装的是下面的这个版本

2.使用

全局导入:

import Vue from "vue"
import vueSwiper from "vue-awesome-swiper"
/* 样式的话,我这里有用到分页器,就在全局中引入了样式 */
import "swiper/dist/css/swiper.css"
Vue.use(vueSwiper);

组件引入

import { swiper, swiperSlide } from "vue-awesome-swiper";
require("swiper/dist/css/swiper.css");
components: {
  swiper,
  swiperSlide
},

在template中使用


  
    
  
  
  
{{imgIndex}}/{{detailimages.length}}

data中配置

data() {
    const that = this;
    return {
      imgIndex: 1,
      swiperOption: {
        //是一个组件自有属性,如果notNextTick设置为true,组件则不会通过NextTick来实例化swiper,也就意味着你可以在第一时间获取到swiper对象,假如你需要刚加载遍使用获取swiper对象来做什么事,那么这个属性一定要是true
        notNextTick: true,
        //循环
        loop: true,
        //设定初始化时slide的索引
        initialSlide: 0,
        //自动播放
        autoplay: {
          delay: 1500,
          stopOnLastSlide: false,
          /* 触摸滑动后是否继续轮播 */
          disableOnInteraction: false
        },
        //滑动速度
        speed: 800,
        //滑动方向
        direction: "horizontal",
        //小手掌抓取滑动
        grabCursor: true,
        on: {
          //滑动之后回调函数
          slideChangeTransitionStart: function() {
            /* realIndex为滚动到当前的slide索引值 */
            that.imgIndex= this.realIndex - 1;
          },
        },
        //分页器设置
        pagination: {
          el: ".swiper-pagination",
          clickable: true,
          type: "bullets"
        }
      }
   };
},
3.遇见的问题

这个插件,在图片只有一张时,仍然会自动滚动

这里很需要注意的一点就是,如果你直接设置autoplay为true的话,在你触摸滑动图片后,他就不会再自动滚动了
/* 这里我是在使用接口请求后,对返回的数据进行判断 */
created() {
  this.$Request({
    url: "",
    method: "get",
    success: res => {
      this.swiperOption.autoplay = res.result.data.length != 1 ? {
        delay: 1500,
        stopOnLastSlide: false,
        disableOnInteraction: false
        } : false;
     }
  })
}

在on里面,监听slideChangeTransitionStart方法时,在开始的时候,我用的是activeIndex来设置对应的索引值,这个的话,滑向下一张没有发现问题,后面,自己试着滑向上一张图片,就发现出现问题,这个值不对应了,使用realIndex

on: {
   slideChangeTransitionStart: function() {
      that.imgIndex = this.realIndex + 1;
   },
},

在swiper这个容器中,会出现滚动到最后一张图片后就不自动滚动了,以及出现底边的小圆点写了后不显示的问题

原因是因为this.commodity刚开始数据为[],后来赋值才有值,所以要先判断this.commodity是否为空,这里就在swiper这个容器中进行判断,若数据长度为0,就不显示这个容器
正在努力学习中,若对你的学习有帮助,留下你的印记呗(点个赞咯^_^)

往期好文推荐:

webpack打包(有面试题)

纯css实现瀑布流(multi-column多列及flex布局)

画三角形

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/97810.html

相关文章

  • 当大多数人对Vue理解到炉火纯青的时候,是不是该思考一下怎么让vue页面骚气起来

    写在前面 当大多数人Vue理解的炉火纯青的时候,你应该思考怎么让vue页面骚气起来,下面就我个人在接触Vue两年的时间里,在实际工作中门户网站在前端页面交互应用和技巧,炒几道小菜给大家分享一哈,我把它封装成一个项目vue-portal-webUI(github源码),不敢说是UI,但也是各种常见常遇到的情景吧,看懂代码需要一些vue、axios、es6、scss基础、数据基本上是mock,功能和场...

    lingdududu 评论0 收藏0
  • 那些年,那些坑--swiper loop:true引发绑定dom的click事件无效及解决方案

    摘要:第一版这是最常规的做法,把事件绑定在上。阻止点击事件冒泡世界杯揭幕战超新星球助攻俄罗斯沙特格里兹曼宣布留马竞颜值满分世界杯首日美女球迷盘点盘点历届世界杯大比分屠杀希望借此可以帮助遇到此问题的小伙伴,祝大家的生活中再无。 对于 swiper,只要做过轮播图的童鞋应该都再熟悉不过了。这是一个很强大的图片轮播插件,本身无任何第三方库依赖,即插即用。api 文档很清晰,所以很快能够上手。但是,...

    Barrior 评论0 收藏0
  • vue引入新版 swiper,vue-awesome-swiper填坑

    摘要:出错前纠正后总结官网其实早放出说明来了,但自己一看全是英文,就没想看下去。发现网上关于最新就两三篇,而且没说清楚。于是写下这篇,希望对大家有帮助。 关于新版 swiper,vue-awesome-swiper 问题 为什么我的swiper,vue-awesome-swiper组件pagination小圆点不显示问题? 为什么我的swiper不会自动播放? 为什么我的swiper没有c...

    Miyang 评论0 收藏0
  • Vue搭建一个应用盒子(三):音乐播放器

    摘要:组件结构接着我们就该搭建这个播放器的组件了。总的原理是首先获取音频的持续时间,然后通过一个定时器,不断更新显示时间,播放完成时,计时器停止。这个页面比较简单,播放器标签,绑定了事件,即播放完成后执行。 这个播放器的开发历时2个多月,并不是说它有多复杂,相反它的功能还非常不完善,仅具雏形。之所以磨磨蹭蹭这么久,一是因为拖延,二也是实习公司项目太紧。8月底结束实习前写完了样式,之后在家空闲...

    appetizerio 评论0 收藏0
  • 基于 Vue 实现的 移动端图片轮播组件.

    摘要:基于的移动端的图片轮播组件之前一直在用功能很齐全但是唯一的问题就是体积比较大我只是想要一个简单的图片轮播但是却要引入多大小的文件这样是不对的特点支持自动播放无限轮播效果支持用户手动滑动压缩后大概使用在入口文件中引入暂时不支持单组 wc-swiper 基于 Vue 的移动端的图片轮播组件. why 之前一直在用 vue-awesome-swiper, 功能很齐全, 但是唯一的问题就是体积...

    hsluoyz 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<