vue2实现可复用的轮播图carousel组件详解


Posted in Javascript onNovember 27, 2017

本文实例为大家分享了vue2实现轮播图carousel组件的使用方法,供大家参考,具体内容如下

1、千年老规矩,上效果图,说明功能:

(1) 实现定时器,鼠标未移上图片时,自动轮播切换

(2) 有左右切换按钮,可切换至上一张、下一张

(3)有底部小图标,可自由切换至任意一张

vue2实现可复用的轮播图carousel组件详解

github参考地址:https://github.com/chuanzaizai/vue_carousel

2、组件设计思路:

(1)由于是可复用的子组件,图片的宽高、定时器间隔时间、轮播图list应由父组件传入

vue2实现可复用的轮播图carousel组件详解

(2)定义子组件自身变量,由于我这里为了简化步骤,所以轮播图list就暂时就定义为一个常量

同时定义了pos默认展示的图片数组下标,后面的计算属性会很有用

定时器变量

vue2实现可复用的轮播图carousel组件详解

(3) 接着是比较关键的一些步骤:

a、为图片绑定的:src的计算属性

vue2实现可复用的轮播图carousel组件详解

vue2实现可复用的轮播图carousel组件详解

b、底部的小按钮应该动态生成,并且它的active样式应该依托于pos动态切换

vue2实现可复用的轮播图carousel组件详解

c、上一张、下一张、定时器切换时就是++或者--pos,同时在两个临界值0和defaultList.length-1是判断就可以

vue2实现可复用的轮播图carousel组件详解

d、由于下部小图标为动态生成、宽高不定,但是都应水平居中:

可采用flex布局,或者js调整样式

vue2实现可复用的轮播图carousel组件详解

3、说明一下这样设计的原因

(1)子组件的复用性不言而喻,可定义宽高、定时器切换时间

(2)比较重要的一点:

a、组件加载过程中,如果轮播图数量过多,假如有10张,按照传统加载模式,就初始化一次性加载,再自行切换,这对页面的性能是很大的挑战

b、在以上组件的设计中,用为将pos定义为0,初始化只会加载一张图片,定时器切换或者用户手动切换才会其余图片,这对用户体验是很大的改善

4、代码已上传至github,喜欢的小伙伴可以点个赞!!!!!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript 浏览器检测代码精简版
Mar 04 Javascript
通过jQuery源码学习javascript(二)
Dec 27 Javascript
对于this和$(this)的个人理解
Sep 08 Javascript
使用JavaScript进行进制转换将字符串转换为十进制
Sep 21 Javascript
JavaScript设计模式之适配器模式介绍
Dec 28 Javascript
javascript设置页面背景色及背景图片的方法
Dec 29 Javascript
JavaScript 中对象的深拷贝
Dec 04 Javascript
jquery——九宫格大转盘抽奖实例
Jan 16 Javascript
原生js二级联动效果
Jun 20 Javascript
Vue利用路由钩子token过期后跳转到登录页的实例
Oct 26 Javascript
vue根据值给予不同class的实例
Sep 29 Javascript
Node.js实现一个HTTP服务器的方法示例
May 13 Javascript
让bootstrap的carousel支持滑动滚屏的实现代码
Nov 27 #Javascript
微信小程序列表渲染功能之列表下拉刷新及上拉加载的实现方法分析
Nov 27 #Javascript
vue2.0使用swiper组件实现轮播效果
Nov 27 #Javascript
解读vue生成的文件目录结构及说明
Nov 27 #Javascript
使用Bootstrap + Vue.js实现表格的动态展示、新增和删除功能
Nov 27 #Javascript
基于vue2.0实现简单轮播图
Nov 27 #Javascript
Vue父子模版传值及组件传值的三种方法
Nov 27 #Javascript
You might like
php is_file()和is_dir()用于遍历目录时用法注意事项
2010/03/02 PHP
apache+php完美解决301重定向的两种方法
2011/06/08 PHP
discuz程序的PHP加密函数原理分析
2011/08/05 PHP
PHP遍历数组的方法汇总
2015/04/30 PHP
浅谈htmlentities 、htmlspecialchars、addslashes的使用方法
2016/12/09 PHP
php生成二维码图片方法汇总
2016/12/17 PHP
thinkPHP微信分享接口JSSDK用法实例
2017/07/07 PHP
js动态生成指定行数的表格
2013/07/11 Javascript
Get中文乱码IE浏览器Get中文乱码解决方案
2013/12/26 Javascript
jquery获取tagName再进行判断
2014/05/29 Javascript
javascript中this的四种用法
2015/05/11 Javascript
jQuery多级手风琴菜单实例讲解
2015/10/22 Javascript
浅析Bootstrap表格的使用
2016/06/23 Javascript
详解jquery validate实现表单验证 (正则表达式)
2017/01/18 Javascript
jQuery实用密码强度检测
2017/03/02 Javascript
NodeJS学习笔记之Module的简介
2017/03/24 NodeJs
Angular.JS中的指令引用template与指令当做属性详解
2017/03/30 Javascript
vue Render中slots的使用的实例代码
2017/07/19 Javascript
在Debian(Raspberry Pi)树莓派上安装NodeJS的教程详解
2017/09/19 NodeJs
Angular实现预加载延迟模块的示例
2017/10/12 Javascript
npm全局模块卸载及默认安装目录修改方法
2018/05/15 Javascript
Vuex 单状态库与多模块状态库详解
2018/12/11 Javascript
使用pycharm设置控制台不换行的操作方法
2019/01/19 Python
Python requests模块cookie实例解析
2020/04/14 Python
python3中datetime库,time库以及pandas中的时间函数区别与详解
2020/04/16 Python
使用tensorflow进行音乐类型的分类
2020/08/14 Python
Python爬虫自动化获取华图和粉笔网站的错题(推荐)
2021/01/08 Python
在网上学习全世界最好的课程:Coursera
2017/11/07 全球购物
Tiqets荷兰:出售欧洲最美丽的景点和博物馆门票
2018/01/09 全球购物
施华洛世奇韩国官网:SWAROVSKI韩国
2018/06/05 全球购物
木马的传播途径主要有哪些
2016/04/08 面试题
师范生的个人求职信范文
2014/01/04 职场文书
学年末自我鉴定
2014/01/21 职场文书
金融学专科生自我鉴定
2014/02/21 职场文书
教育专业毕业生推荐信
2014/07/10 职场文书
五年级学生期末评语
2014/12/26 职场文书