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 调试利器 Firebug使用详解六
Jul 05 Javascript
基于jquery的textarea发布框限制文字字数输入(添加中文识别)
Feb 16 Javascript
JQuery页面的表格数据的增加与分页的实现
Dec 10 Javascript
js实现checkbox全选和反选示例
May 01 Javascript
JavaScript中使用typeof运算符需要注意的几个坑
Nov 08 Javascript
谈谈JSON对象和字符串之间的相互转换JSON.stringify(obj)和JSON.parse(string)
Oct 01 Javascript
BootStrap表单宽度设置方法
Mar 10 Javascript
bootstrap选项卡扩展功能详解
Jun 14 Javascript
JavaScript实现开关等效果
Sep 08 Javascript
Vue多组件仓库开发与发布详解
Feb 28 Javascript
layui问题之渲染数据表格时,仅出现10条数据的解决方法
Sep 12 Javascript
如何在JavaScript中正确处理变量
Dec 25 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 一个比较完善的简单文件上传
2010/03/25 PHP
PHP安全配置详细说明
2011/09/26 PHP
php实现的读取CSV文件函数示例
2017/02/07 PHP
深入聊聊Array的sort方法的使用技巧.详细点评protype.js中的sortBy方法
2007/04/12 Javascript
Add a Table to a Word Document
2007/06/15 Javascript
jquery滚动条插件jScrollPane的使用介绍
2013/11/08 Javascript
jQuery动态添加、删除元素的方法
2014/01/09 Javascript
常见的原始JS选择器使用方法总结
2014/04/09 Javascript
JQuery性能优化的几点建议
2014/05/14 Javascript
浅析AngularJS中的生命周期和延迟处理
2015/06/18 Javascript
nodejs实现获取当前url地址及url各种参数值
2015/06/25 NodeJs
Node.js中使用socket创建私聊和公聊聊天室
2015/11/19 Javascript
JavaScript_object基础入门(必看篇)
2016/06/13 Javascript
jQuery+HTML5实现弹出创意搜索框层
2016/12/29 Javascript
webpack4.0打包优化策略整理小结
2018/03/30 Javascript
vue配置多页面的实现方法
2018/05/22 Javascript
纯JS实现的读取excel文件内容功能示例【支持所有浏览器】
2018/06/23 Javascript
Vue实现移动端左右滑动效果的方法
2018/11/27 Javascript
如何根据业务封装自己的功能组件
2019/04/19 Javascript
vue移动端使用canvas签名的实现
2020/01/15 Javascript
基于Element的组件改造的树形选择器(树形下拉框)
2020/02/27 Javascript
Python之str操作方法(详解)
2017/06/19 Python
python 将字符串转换成字典dict的各种方式总结
2018/03/23 Python
对python 通过ssh访问数据库的实例详解
2019/02/19 Python
flask应用部署到服务器的方法
2019/07/12 Python
Python使用re模块验证危险字符
2020/05/21 Python
利用CSS3实现自定义滚动条代码分享
2016/08/18 HTML / CSS
土木工程专业自荐信
2013/10/04 职场文书
《散步》教学反思
2014/03/02 职场文书
环保倡议书
2014/04/14 职场文书
学校安全责任书
2014/04/14 职场文书
清洁工岗位职责
2015/02/13 职场文书
数学考试作弊检讨书300字
2015/02/16 职场文书
2016年优秀少先队员事迹材料
2016/02/26 职场文书
聊一聊Redis与MySQL双写一致性如何保证
2021/06/26 Redis
Mysql中有关Datetime和Timestamp的使用总结
2021/12/06 MySQL