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 相关文章推荐
自动检查并替换文本框内的字符
Jun 30 Javascript
JS backgroundImage控制
May 19 Javascript
jQuery 无刷新分页实例代码
Nov 12 Javascript
简化版手机端照片预览组件
Apr 13 Javascript
javascript十六进制及二进制转化的方法
May 06 Javascript
基于BootStarp的Dailog
Apr 28 Javascript
jQuery+css实现非常漂亮的水平导航菜单效果
Jul 27 Javascript
详解JavaScript的闭包、IIFE、apply、函数与对象
Dec 21 Javascript
Node.js编写CLI的实例详解
May 17 Javascript
Bootstrap-table自定义可编辑每页显示记录数
Sep 07 Javascript
Vue开发之封装上传文件组件与用法示例
Apr 25 Javascript
vue prop属性传值与传引用示例
Nov 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
discuz论坛 用户登录 后台程序代码
2008/11/27 PHP
php函数array_merge用法一例(合并同类数组)
2013/02/03 PHP
coreseek 搜索英文的问题详解
2013/06/08 PHP
WAMP环境中扩展oracle函数库(oci)
2015/06/26 PHP
php+jQuery递归调用POST循环请求示例
2016/10/14 PHP
PHP使用微信开发模式实现搜索已发送图文及匹配关键字回复的方法
2017/09/13 PHP
PHP实现的AES 128位加密算法示例
2019/09/16 PHP
Thinkphp极验滑动验证码实现步骤解析
2020/11/24 PHP
Javacript实现颜色梯度变化和渐变的效果代码
2013/05/31 Javascript
利用js判断浏览器类型(是否为IE,Firefox,Opera浏览器)
2013/11/22 Javascript
常用的JavaScript验证正则表达式汇总
2013/11/26 Javascript
Extjs4中tree的拖拽功能(可以两棵树之间拖拽) 简单实例
2013/12/08 Javascript
js分页代码分享
2014/04/28 Javascript
使用原生js实现页面蒙灰(mask)效果示例代码
2014/06/20 Javascript
jQuery获取节点和子节点文本的方法
2014/07/22 Javascript
使用jQuery和Bootstrap实现多层、自适应模态窗口
2014/12/22 Javascript
javascript父子页面通讯实例详解
2015/07/17 Javascript
Javascript基础_简单比较undefined和null 值
2016/06/14 Javascript
require简单实现单页应用程序(SPA)
2016/07/12 Javascript
Javascript数组中push方法用法分析
2016/10/31 Javascript
Angular中$state.go页面跳转并传递参数的方法
2017/05/09 Javascript
Node使用Nodemailer发送邮件的方法实现
2020/02/24 Javascript
深入了解JavaScript词法作用域
2020/07/29 Javascript
JavaScript实现音乐导航效果
2020/11/19 Javascript
[01:31:22]Ti4 循环赛第四日附加赛LGD vs Mouz
2014/07/13 DOTA
python处理DICOM并计算三维模型体积
2019/02/26 Python
HTML5实现视频直播功能思路详解
2017/11/16 HTML / CSS
Nuts.com:优质散装,批发坚果、干果和巧克力等
2017/03/21 全球购物
欧洲领先的火车票和大巴票预订平台:Trainline
2018/12/26 全球购物
餐饮加盟计划书
2014/01/10 职场文书
无房证明范本
2014/09/17 职场文书
2014年政教处工作总结
2014/12/20 职场文书
初级职称评定工作总结
2015/08/13 职场文书
标准版个人借条怎么写?以及什么是借条?
2019/08/28 职场文书
golang 实现菜单树的生成方式
2021/04/28 Golang
2021年国产动漫公司排行前十名,玄机科技上榜,第二推出过铠甲勇士
2022/03/18 杂记