博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
基于 Vue 实现的 移动端图片轮播组件.
阅读量:6243 次
发布时间:2019-06-22

本文共 1956 字,大约阅读时间需要 6 分钟。

wc-swiper

基于 Vue 的移动端的图片轮播组件.

why

之前一直在用 vue-awesome-swiper, 功能很齐全, 但是唯一的问题就是体积比较大.

我只是想要一个简单的图片轮播, 但是却要引入 100多k 大小的文件, 这样是不对的.

特点

  • 支持自动播放 & 无限轮播 (loop) 效果
  • 支持用户手动滑动
  • 压缩后大概 ~8k

使用

npm i wc-swiper --save
// 在入口文件中引入(暂时不支持单组件引入的方式):import wcSwiper from 'wc-swiper'import 'wc-swiper/style.css'Vue.use(wcSwiper);
// 在需要使用的 view 里面引入:
// 这里放你需要轮播的内容, 比如一张图片
// 循环列表
// 异步获取 slides 的时候, 需要在 wc-swiper 上面添加 v-if 判断
// 带配置选项
// 这里放你需要轮播的内容, 比如一张图片

配置

在 wc-swiper 上面暴露了一些配置选项:

duration:    一次滑动的时间 | default: 500msinterval:    两次滑动间隔时间 | default: 2500msautoplay:    是否自动播放 | default: truetherehold:    用户滑动多少距离之后自动翻页 | default: 110curSlide:   默认显示第几个 slide | default: 0

事件

  • 在 wc-swiper 上可以监听一些事件:
transitionend 事件每一次滑动结束(不论用户手动滑动, 还是自动滑动) 都会触发 transitionend 事件. transtionend 携带唯一一个参数:currentSlide, 用来表明, 当前 slide 是第几个 slide.并且要注意: slide 从 0 开始计数.
  • 在 wc-slide 上面可以监听 click 事件.

方法

有些时候, 你可能想要实现这样一种操作: 点击一个按钮, 让 swiper 跳转到指定的 slide, 或者点击按钮, 让

swiper 跳转到上一个或者下一个. 对此, 你可以这样操作:

1. 在 
标签上添加 ref 属性, 例如:
2. 通过 this.$refs.swiper 来引用预先提供的 3 个方法:slideTo (index) 跳转至指定索引 (index 从 0 开始)next () 跳转到下一个previous () 跳转到上一个例如:this.$refs.swiper.slideTo(3) // 跳转到索引为 3 的 slide

问题描述

1. 如何设置轮播图的高度

通过设置 wc-swiper 的高度即可. 比如:

.swiper {    height: 200px;}

2. 如何渲染异步数据

一般情况下, 轮播的数据可能通过接口请求得来, 此时, 需要在 wc-swiper 上面加上 v-if 判断, 从而延迟 wc-swiper 的渲染时机:

3. 点击 slide 的时候如果需要跳转新的页面该怎么办

可以为 wc-slide 的内容包裹一层 a 标签

//content

或者可以在 wc-slide 上面监听 click 事件:

4. 怎么添加 pagination 或者左右箭头?

个人认为, pagination 以及 arrow-left, arrow-right, 都只是 swiper 的配套设施, 而不应该是组成的一部分. 所以没有提供默认的 pagination 和 arrow, 而是提供了 slot, 如果你希望

为 swiper 添加 pagination 或者 arrow, 可以通过这样的方式添加:

可以参考这个的写法: Pagination

存在的问题

  • 多指触碰的时候, 比如多根手指同时滑动的时候, 就会出现问题, 这种极端情况, 比较复杂和少见, 暂时不考虑.

转载地址:http://eapia.baihongyu.com/

你可能感兴趣的文章
《Java与模式》- 创建型模式
查看>>
[Android]使用Kotlin开发Android(二)
查看>>
php将对象数组转成普通数组
查看>>
org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files (x86)\Java\jdk1.7.0_7
查看>>
Python 中的 if __name__ == '__main__' 该如何理解(1)
查看>>
Qt之对话框设计——利用QPalette改变控件颜色
查看>>
#lspci | grep Eth
查看>>
Linux下svn常用指令【转】
查看>>
C#下2\10\16进制互转代码总汇
查看>>
人工智能和机器学习领域的一些有趣的开源项目
查看>>
Objective-C:继承的体现
查看>>
三星发布Exynos 7872移动处理器 定位中端市场
查看>>
面试题大全
查看>>
设计模式系列-命令模式
查看>>
Java中的流
查看>>
如何启动或关闭oracle的归档(ARCHIVELOG)模式
查看>>
[LintCode] Paint Fence 粉刷篱笆
查看>>
mysql中实现类似oracle中的nextval函数
查看>>
使用按键精灵+umdh定位内存泄露问题的方式
查看>>
RecyclerView实现ViewPager效果
查看>>