来源:https://blog.logrocket.com,作者:John Au-Yeung

要创建一个轮播图,我们必须动态地创建显示图片,并添加导航按钮来在它们之间导航,我们可能还需要自动播放功能。

这些都需要时间来构建,而且极有可能我们可以更好地利用这些时间做其他事情。在这篇文章中,我们将看看Vue.js的一些轮播图库,让我们的生活变得更轻松,并让我们拿回一些宝贵的时间。

vue-easy-slider

vue-easy-slider[1] 是一个简单的Vue滑块组件,可与鼠标和触摸屏一起使用。它是可自定义的,并带有动画效果。

要使用它,我们通过运行以下命令进行安装:

npm i -S vue-easy-slider

然后我们可以通过编写以下代码来使用它:

//main.js
//App.vue

<template><div id="app"><slider animation="fade"><slider-item v-for="(i, index) in list" :key="index"><img :src="i">slider-item>slider>div>template>

<script>export default {name: "App",  data() {return {index: 0,list: Array(5)        .fill()        .map((_, i) => `http://lorempixel.com/400/200/sports/${i}/`)    };  }};script>

我们使用 slider 组件来添加轮播,animation 属性设置动画效果。顾名思义,slider-item 存放的是轮播项目。

我们还可以更改样式。例如,我们可以通过编写以下内容来更改宽度和高度:

<template>

我们还可以启用或禁用触摸控制并更改幻灯片切换的速度。它还会发出一些事件,例如 change,在切换幻灯片时会触发。当显示下一张或上一张幻灯片时触发。

它还具有用于放置占位符的插槽,以便在加载幻灯片时显示某些内容。

vue-awesome-swiper


vue-awesome-swiper[2]是Vue应用程序的另一个易于使用的轮播组件。它基于Swiper,因此我们必须将其与软件包一起安装:

npm install swiper vue-awesome-swiper --save

然后我们可以通过编写以下代码来使用它:

//app.js
//App.vue

<template><div id="app"><swiper ref="mySwiper" :options="swiperOptions"><swiper-slide v-for="(i, index) in list" :key="index"><img :src="i">swiper-slide><div class="swiper-pagination" slot="pagination">div>swiper>div>template>

<script>export default {  data() {return {list: Array(5)        .fill()        .map((_, i) => `http://lorempixel.com/400/200/sports/${i}/`),swiperOptions: {pagination: {el: ".swiper-pagination"        }      }    };  }};script>

在这里,我们使用带有某些选项的 swiper 组件。swiper-slide 组件可容纳幻灯片,因此我们将图像放入其中。我们还将swiperOptions 传递给 options 属性。

我们使用 pagination 槽填充内容,并为分页设置一个类,以便可以对其进行样式设置。

我们也可以通过编程方式转到幻灯片。这就是为什么我们将 ref 分配给滑块的原因之一——移至所需的幻灯片。例如,我们可以这样写:

//App.js

<template><div id="app"><swiper ref="mySwiper" :options="swiperOptions"><swiper-slide v-for="(i, index) in list" :key="index"><img :src="i">swiper-slide><div class="swiper-pagination" slot="pagination">div>swiper>div>template>

<script>export default {  data() {return {list: Array(5)        .fill()        .map((_, i) => `http://lorempixel.com/400/200/sports/${i}/`),swiperOptions: {pagination: {el: ".swiper-pagination"        }      }    };  },computed: {    swiper() {return this.$refs.mySwiper.$swiper;    }  },  mounted() {this.swiper.slideTo(2, 1000, false);  }};script>

我们使用分配给滑块的mySwiper ref创建了一个计算属性,然后调用 slideTo 方法来改变为具有给定索引的幻灯片。索引在第一个参数中,第二个参数是延迟,第三个参数指示我们是否要运行回调。如果将其设置为 true,它将在切换期间发出事件。

像vue-easy-slider一样,该轮播库也具有动画效果。

Slick for Vue.js


Slick for Vue.js[3]库为我们提供了另一个滑块。jQuery是一个依赖项,因此我们也必须安装它。要安装依赖项,请运行:

npm install jquery vue-slick --save

接下来,我们可以通过编写以下代码来使用它:

//main.js
//App.vue

<template><slick ref="slick" :options="slickOptions"><div v-for="(i, index) in list" :key="index"><img :src="i">div>slick>template>

<script>import Slick from "vue-slick";export default {components: { Slick },  data() {return {slickOptions: {slidesToShow: 1      },list: Array(5)        .fill()        .map((_, i) => `http://lorempixel.com/400/200/sports/${i}/`)    };  },methods: {}};script>

我们在 main.js 中注册插件并导入CSS,然后使用 slick 组件来创建我们的轮播图。我们传入我们的 slickOptions 对象,并将slidesToShow 属性设置为 1 ,只显示一张幻灯片。幻灯片是通过使用 v-for 来渲染图片来创建的。

它发出许多事件:

  • 我们可以监听 afterChange 事件,该事件在幻灯片切换后发出
  • 在幻灯片切换之前发出 beforeChange
  • 卸载滑块时会发出 destroy
  • 执行滑动动作时会触发 swipe
  • 还有很多

我们也可以调用 this.$refs.slick.reSlick(); 来更新我们的幻灯片,如果我们改变了图片列表,就使用最新的图片。

vue-flickity

接下来是vue-flickity[4],它为我们提供了许多自定义选项。要安装它,我们可以运行:

npm install vue-flickity --save

让我们来看看如何使用它:

//App.vue

<template><div><flickity ref="flickity" :options="flickityOptions"><div class="carousel-cell" v-for="(i, index) in list" :key="index"><img :src="i">div>flickity>

<button @click="previous()">Previousbutton><button @click="next()">Nextbutton>div>template>

<script>import Flickity from "vue-flickity";export default {components: { Flickity},  data() {return {flickityOptions: {initialIndex: 3,prevNextButtons: false,pageDots: false,wrapAround: true      },list: Array(5)        .fill()        .map((_, i) => `http://lorempixel.com/400/200/sports/${i}/`)    };  },methods: {    next() {this.$refs.flickity.next();    },    previous() {this.$refs.flickity.previous();    }  }};script>

我们使用 flickity 组件添加滑块,并且可以通过 options 属性对其进行自定义。我们使用它通过 initialIndex 属性设置初始幻灯片。

prevNextButton 可以让我们显示或隐藏内置的导航按钮,我们可以选择是否要用 pageDots 来显示导航点,wrapAround 表示当我们到达轮播图的结束或开始时,分别回到第一张或最后一张幻灯片。

我们还为导航添加了一些自定义的按钮,我们创建了一个用于导航到上一张幻灯片的按钮和一个用于导航到下一张幻灯片的按钮。ref获取ref,让我们分别调用下一张或上一张方法来移动到下一张或上一张幻灯片。

我们可以使用CSS设置轮播和幻灯片的样式。它将轮播添加到 carousel-cell 类中,以便我们对其进行样式设置。内置的导航按钮和圆点也有它们的类,这意味着我们可以轻松地设置样式。

Vue Carousel 3D


Vue Carousel 3D[5]是一个有趣的滑块。它以3D幻灯片而不是2D形式显示幻灯片。当我们浏览幻灯片时,正在显示的幻灯片是在其他幻灯片的前面创建的,并且当我们翻转幻灯片时,它会显示旋转效果。

要安装它,我们运行:

npm install -S vue-carousel-3d

要使用它,我们写:

//main.js
//App.vue

<template><div><carousel-3d><slide v-for="(i, index) in list" :key="index" :index="index"><img :src="i">slide>carousel-3d>div>template>

<script>export default {  data() {return {list: Array(5)        .fill()        .map((_, i) => `http://lorempixel.com/400/200/sports/${i}/`)    };  }};script>

我们使用 carousel-3d 组件添加轮播,然后使用 slide 组件添加幻灯片。我们传入索引,以便正确放置幻灯片。内置3D样式。

除此之外,它还有一些自定义选项。我们可以:

  • 使用 autoplay prop启用或禁用自动播放
  • 更改偏差,即当幻灯片数量为偶数时,偏差更大
  • 设置轮播无限循环
  • 调整宽度和高度
  • 自定义滑动距离并控制宽度和高度

总结

大多数库都非常相似,而Vue Carousel 3D无疑是最独特的。其他都是二维的,具有类似的自定义选项。

它们的性能相似,并且都很容易使用。它们都可以在触摸屏上使用,并且都具有动画效果。

Slick for Vue.js会发出很多事件,因此,如果我们需要在幻灯片更改或类似情况发生时做一些事情,那我们就应该选择该库。如果我们希望每页显示多张幻灯片,则Slick for Vue.js也很有用。

代理通常与另一个称为Reflect的元编程功能一起使用。


前端大礼包新增课程了

js map 只输出key_Vue.js轮播库热门精选相关推荐

  1. js map 只输出key_什么时候适合使用Map而不是Object

    「Map」映射是一种经典的数据结构类型,其中数据以 「key/value」 的键值对形式存在 Map 默认值:默认不包含任何值,只包含显式插入的键 类型:任意 长度:键值对个数通过 size 属性获取 ...

  2. 2022-06-23 轮播库swiper.js的引入和使用

    复习:引入和使用一个外部插件的流程 2022-06-22 jQuery如何引入和使用外部插件(以轮拨图插件OwlCarousel2为例) swiper.js介绍和下载 swiper是一款免费以及轻量级 ...

  3. jquery,js实现手机端全屏轮播图手动滑动+自动切换(autoplay)

    jquery,js实现手机端全屏轮播图 使用了swiper插件,可手动滑动切换也可自动切换 效果图 css代码 只是作为参考,可以根据你自己的需求去改,这里我用的是上下两张背景图,图自行修改 html ...

  4. html js 3d图片轮播,js实现3D图片逐张轮播幻灯片特效代码分享

    本文实例讲述了javascript实现3D图片逐张轮播幻灯片特效.分享给大家供大家参考.具体如下: 这是一款基于javascript实现3D图片逐张轮播幻灯片特效代码,实现过程很简单. 运行效果图:- ...

  5. 5 个 JavaScript 轮播库

    英文 | https://javascript.plainenglish.io/top-5-javascript-carousel-libraries-ef51375aba2d 翻译 | 小爱 实施有 ...

  6. 5个JavaScript 轮播库

    5个JavaScript 轮播库 1.Swiper(最好用) Swiper 是一款免费的移动端触摸轮播库,具有硬件加速过渡和令人难以置信的原生行为. 它专为移动网站.移动网络应用和原生 / 混合移动应 ...

  7. php如何从左往右轮播,js实现从左向右滑动式轮播图效果

    轮播图就是让图片每隔几秒自动滑动,达到图片轮流播放的效果.轮播图从效果来说有滑动式的也有渐入式的,滑动式的轮播图就是图片从左向右滑入的效果,渐入式的轮播图就是图片根据透明度渐渐显示的效果,这里说的是实 ...

  8. 原生JS实现PC端无缝滚动轮播图、匀速轮播图、匀速动画

    offset家族的了解 1.offsetHeight:元素的offsetHeight是一种元素CSS高度的衡量标准,包括元素的边框.内边距和元素的水平滚动条(如果存在且渲染的话),不包含:before ...

  9. 老徐WEB:JS简单实现图片滚动效果轮播图,自动、手动和自适应(二)

    轮播图是前端网页中常用的功能,包括PC端和移动端,都会用到轮播图,像咨讯.电商和个人博客等,首页基本都会有轮播图. 老徐在上一篇文章的基础上[最简单详细的轮播图原理和制作过程],又扩展了功能,使之成为 ...

最新文章

  1. 用c#实现通讯中自定义发送序列化数据,可一定程度上实现可编程发送的功能
  2. 手动安装K8s第三节:etcd集群部署
  3. 数据中心可以从云计算学习可持续性运营
  4. 《Effective C++》item25:考虑写出一个不抛异常的swap函数
  5. 安卓App热补丁动态修复技术:让App像Web一样发布新版本
  6. version robot
  7. 在C#代码中应用Log4Net系列教程(附源代码)
  8. html5相对父元素定位,layer弹出层设置相对父级元素定位
  9. 2000年考研英语阅读理解文章三
  10. php多人点餐可以看到对方点的菜,千万不要小看你身边那个会点菜的人,因为
  11. DXP 内电层分割
  12. android之camera2获取数据
  13. js 不相等 多次随机数_node.js静态\动态服务器
  14. 物联网与嵌入式系统的关系
  15. UE4多人 mysql_UE4 添加多人联机功能
  16. Zbar+ROS+opencv二维码识别与定位研究(一)
  17. iOS开发 viewWillAppear:(BOOL)animated真机调试的时候不执行了怎么办
  18. DiskPart分区工具命令详解
  19. Latex特殊符号汇集
  20. 白羊老师计算机网课,你网课作业写完了吗?每一个赶DDL的日子都是痛并快乐着...

热门文章

  1. Downloader Middlewares
  2. 单进程服务器-非堵塞模式(python版)
  3. python可变类型做默认参数
  4. Hadoop 系列之 1.0 和2.0 架构
  5. jquery异步调用post的一些注意事项
  6. ASP.NET 百万级分页查询(Oracle)
  7. [NLP]基于IMDB影评情感分析之BERT实战-测试集上92.24%
  8. 【链接攻击,差分攻击,去标识化代码实现】差分隐私代码实现系列(二)
  9. 差分隐私与机器学习的综述【笔记】
  10. Gaussian LDA(高斯LDA)简介