vue移动端轻量级的轮播组件实现代码


Posted in Javascript onJuly 12, 2018

一个简单的移动端卡片滑动轮播组件,适用于Vue2.x

c-swipe 2.0 全新归来。重写了全部的代码,更靠谱的质量,更优秀的性能

vue移动端轻量级的轮播组件实现代码

English Document

安装

npm install c-swipe --save

使用

注册组件

// main.js
// 引入 c-swipe 主文件
import 'c-swipe/dist/swipe.css';
import { Swipe, SwipeItem } from 'c-swipe';
// 全局注册组件
Vue.component('swipe', Swipe);
Vue.component('swipe-item', SwipeItem);

在 .vue 单文件组件中使用:

<swipe
 v-model="index"
 style="text-align: center; line-height: 80px; height: 100px; background: #42b983;"
>
 <swipe-item style="height: 100px; line-height: 100px">item1</swipe-item>
 <swipe-item style="height: 100px; line-height: 100px">item2</swipe-item>
 <swipe-item style="height: 100px; line-height: 100px">item3</swipe-item>
</swipe>
new Vue({
 data: function () {
  return {
   index: 0, // two way
  };
 },
});

或者,你想在 html 标签中直接引用

<link href="../node-modules/c-swipe/dist/swipe.css" rel="external nofollow" rel="stylesheet"></head>
<script type="text/javascript" src="../node-modules/c-swipe/dist/swipe.js"></script>
var vueSwipe = swipe.Swipe;
var vueSwipeItem = swipe.SwipeItem;
new Vue({
 el: 'body',
 // 注册组件
 components: {
  'swipe': vueSwipe,
  'swipe-item': vueSwipeItem
 },
 // ...
 // ...
});

配置

选项 类型 默认 描述
v-model Number 0 绑定了当前显示卡片的索引,该数据为双向绑定,可通过更改 v-model 的值直接更改当前显示卡片
pagination Boolean true 是否需要默认样式的导航器
loop Boolean true 循环切换
autoplayTime Number 0 单位 ms,自动切换卡片的时间间隔,值为 0 时不自动切换
speed Number 300 单位 ms, 切换卡片时的过渡效果的播放时长
minMoveDistance String '20%' 成功触发切换卡片事件的最小滑动距离,可以传入百分比,如 '20%',或者传入具体像素距离,如 '80px'。

方法

swipe.reset()

c-swipe 内部将重新计算 Swipe 的宽度,并根据新的宽度来计算滚屏的距离。这个可以解决容器重置大小后 c-swipe 滚屏距离不正确的问题。

例:

<swipe ref="swipe">
 <swipe-item>item1</swipe-item>
 <swipe-item>item2</swipe-item>
 <swipe-item>item3</swipe-item>
</swipe>
<script>
 export default {
  // ...
  // ...
  handleResize() {
   this.$refs.swipe.reset();
  }
  mounted() {
   // 避免上下文丢失
   this.handleResize = this.handleResize.bind(this);
   window.addEventListener('resize', this.handleResize);
  },
  destroyed() {
   window.removeEventListener('resize', this.handleResize);
  }
  // ...
  // ...
 }
</script>

总结

以上所述是小编给大家介绍的vue移动端轻量级的轮播组件实现代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
div+css布局的图片连续滚动js实现代码
May 04 Javascript
基于JQuery实现的类似购物商城的购物车
Dec 06 Javascript
利用jQuery简单实现产品展示图片左右滚动功能(示例代码)
Jan 02 Javascript
基于vue.js实现图片轮播效果
Dec 01 Javascript
Angular2实现自定义双向绑定属性
Mar 22 Javascript
使用JavaScript实现点击循环切换图片效果
Sep 03 Javascript
js实现轮播图的完整代码
Oct 26 Javascript
详解在create-react-app使用less与antd按需加载
Dec 06 Javascript
Node.js + express实现上传大文件的方法分析【图片、文本文件】
Mar 14 Javascript
SpringBoot在yml配置文件中配置druid的操作
Nov 16 Javascript
用webAPI实现图片放大镜效果
Nov 23 Javascript
一百多行代码实现react拖拽hooks
Mar 23 Javascript
详解node.js的http模块实例演示
Jul 12 #Javascript
Vue中使用的EventBus有生命周期
Jul 12 #Javascript
JavaScript中发出HTTP请求最常用的方法
Jul 12 #Javascript
vue实现引入本地json的方法分析
Jul 12 #Javascript
jQuery实现checkbox全选功能完整实例
Jul 12 #jQuery
JS实现将二维数组转为json格式字符串操作示例
Jul 12 #Javascript
vue路由组件按需加载的几种方法小结
Jul 12 #Javascript
You might like
phplot生成图片类用法详解
2015/01/06 PHP
php使用ffmpeg获取视频信息并截图的实现方法
2016/05/03 PHP
PHP yii实现model添加默认值的方法(两种方法)
2016/11/10 PHP
保证JavaScript和Asp、Php等后端程序间传值编码统一
2009/04/17 Javascript
在多个页面使用同一个HTML片段的代码
2011/03/04 Javascript
js中关于String对象的replace使用详解
2011/05/24 Javascript
解决jquery1.9不支持browser对象的问题
2013/11/13 Javascript
js中精确计算加法和减法示例
2014/03/28 Javascript
关闭页面时window.location事件未执行的原因分析及解决方案
2014/09/01 Javascript
jQuery实现带幻灯的tab滑动切换风格菜单代码
2015/08/27 Javascript
图解js图片轮播效果
2015/12/20 Javascript
TypeOf这些知识点你了解吗
2016/02/21 Javascript
全屏js头像上传插件源码高清版
2016/03/29 Javascript
浅谈JavaScript前端开发的MVC结构与MVVM结构
2016/06/03 Javascript
基于javascript实现最简单选项卡切换
2017/02/01 Javascript
Angularjs中的ui-bootstrap的使用教程
2017/02/19 Javascript
angularJS利用ng-repeat遍历二维数组的实例代码
2017/06/03 Javascript
AngularJS实现与后台服务器进行交互的示例讲解
2018/08/13 Javascript
React中Ref 的使用方法详解
2020/04/28 Javascript
解决vue数据不实时更新的问题(数据更改了,但数据不实时更新)
2020/10/27 Javascript
[04:48]DOTA2上海特锦赛小组赛第三日 TOP10精彩集锦
2016/02/28 DOTA
[36:19]2018DOTA2亚洲邀请赛 小组赛 A组加赛 Newbee vs LGD
2018/04/03 DOTA
[01:18:33]Secret vs VGJ.S Supermajor小组赛C组 BO3 第一场 6.3
2018/06/04 DOTA
在漏洞利用Python代码真的很爽
2007/08/26 Python
pygame游戏之旅 游戏中添加显示文字
2018/11/20 Python
python实现的爬取电影下载链接功能示例
2019/08/26 Python
澳大利亚百货公司:David Jones
2018/02/08 全球购物
Tessabit日本:集世界奢侈品和设计师品牌的意大利精品买手店
2020/01/07 全球购物
校园十大歌手策划书
2014/02/01 职场文书
房地产开盘策划方案
2014/02/10 职场文书
工地安全标语
2014/06/07 职场文书
护士实习求职信
2014/06/22 职场文书
2015年社区民政工作总结
2015/04/21 职场文书
2019年最新借条范本!
2019/07/08 职场文书
Oracle 死锁的检测查询及处理
2021/09/25 Oracle
浅谈css实现背景颜色半透明的两种方法
2021/12/06 HTML / CSS