Vue封装Swiper实现图片轮播效果的代码分享

本文主要和大家分享vue封装swiper实现图片轮播效果的代码,图片轮播是前端中经常需要实现的一个功能。最近学习vue.js,就针对swiper进行封装,实现一个简单的图片轮播组件。

一、Swiper

在实现封装之前,先介绍一下Swiper。

Swiper是纯Javascript打造的滑动特效插件,面向手机、平板电脑等移动终端。

Swiper能实现触屏焦点图、触屏Tab切换、触屏多图切换等常用效果。

立即学习“前端免费学习笔记(深入)”;

Swiper开源、免费、稳定、使用简单、功能强大,是架构移动终端网站的重要选择。

Swiper的应用场景广泛,实现效果很好,下面个这实际案例就是Swiper的典型应用场景。

Vue封装Swiper实现图片轮播效果的代码分享 

Swiper的具体使用教程及详细API,参考 Swiper中文网

二、Vue组件

Vue组件设计初衷就是要配合使用的,提高维护性和复用性。而图片轮播正适合使用组件来完成,因此在介绍具体的实现之前,先介绍下关于Vue组件及组件通信。

Vue组件中最常见的就是形成父子组件的关系:组件 A 在它的模板中使用了组件 B。

它们之间必然需要相互通信:父组件可能要给子组件下发数据,子组件则可能要将它内部发生的事情告知父组件。然而,通过一个良好定义的接口来尽可能将父子组件解耦也是很重要的。这保证了每个组件的代码可以在相对隔离的环境中书写和理解,从而提高了其可维护性和复用性。

在 Vue 中,父子组件的关系可以总结为 prop 向下传递,事件向上传递。父组件通过 prop 给子组件下发数据,子组件通过事件给父组件发送消息。

Vue封装Swiper实现图片轮播效果的代码分享 

三、封装实现

1.引入Swiper

首先,需要安装Swiper。

npm install --save swiper

登录后复制

然后,要引用两个文件。

import Swiper from "swiper";import "swiper/dist/css/swiper.min.css";

登录后复制

2.HTML代码

在模板中设置轮播图的html布局。

 

登录后复制

其中使用具名插槽,提高解耦,使得在父组件使用时,根据不同情况,设置不同的轮播内容。

另外需要设置分页器,即图片轮播中的页面指示器,常见的如小圆点,或者数字指示器。

3.初始化Swiper

既然是对Swiper进行封装实现轮播图,前面也已经安装了Swiper,那么现在就需要初始化使用。

在初始化之前,根据Swiper用法的了解,先确定轮播组件需要的属性信息,然后通过父组件传递给封装的Swiper组件。

这时候就需要用到props。

props: {  swipeid: {   type: String,   default: ""  },  effect: {   type: String,   default: "slide"  },  loop: {   type: Boolean,   default: false  },  direction: {   type: String,   default: "horizontal"  },  pagination: {   type: Boolean,   default: true  },  paginationType: {   type: String,   default: "bullets"  },  autoPlay: {   type: Number,   default: 3000  } }

登录后复制

下面逐一解释每个属性的含义。

属性 含义

swiped轮播容器class属性的类名。effect图片的 切换效果,默认为”slide”,还可设置为”fade”, “cube”, “coverflow”,”flip”,详情见effect。loop设置为true 则开启loop模式。loop模式:会在原本图片前后复制若干个图片并在合适的时候切换,让Swiper看起来是循环的,详情见loop。direction图片的滑动方向,可设置水平(horizontal)或垂直(vertical),详情见direction。pagination使用分页导航,详情见pagination。paginationType分页器样式类型,可设置为”bullets”, “fraction”, “progressbar”, “custom”,详情见type。autoPlay设置为true启动自动切换,并使用默认的切换设置,详情见autoplay。

了解了上面每个属性的含义,下面就可以初始化Swiper,并设置具体的属性。

初始化Swiper时,需要传入两个参数。

轮播容器的类名

代表图片轮播组件详细功能的对象

var that = this;  this.dom = new Swiper("." + that.swipeid, {   //循环   loop: that.loop,   //分页器   pagination: {     el: ".swiper-pagination",    bulletClass : 'swiper-pagination-bullet',      },   //分页类型   paginationType: that.paginationType,   //自动播放   autoPlay: that.autoPlay,   //方向   direction: that.direction,   //特效   effect: that.effect,   //用户操作swiper之后,不禁止autoplay   disableOnInteraction: false,   //修改swiper自己或子元素时,自动初始化swiper   observer: true,   //修改swiper的父元素时,自动初始化swiper   observeParents: true  }); }

登录后复制

四、自定义轮播效果

经过上面的步骤,轮播器就封装好了。我们可以自定义实现自己想要的轮播器效果。下面以知乎的API为例,实现图片轮播。

1.HTML代码

   

Vue封装Swiper实现图片轮播效果的代码分享

{{top.title}}

登录后复制

首先要引用注册组件,这里就不详细写出。

其中 m-swipe 就是前面实现的图片轮播组件,而其中的子组件就是通过具名插槽插入的轮播内容。

2.CSS代码

.swiper-container {  width: 100%; } .swiper-slide {  height: 8rem;  overflow: hidden;  position: relative; }.swiper-slide { p {  top: 0;  left: 0;  width: 100%;  height: 100%;  opacity: 0.4;  position: absolute;  background-color: @blue; } img {  top: 50%;  position: relative;  transform: translate(0, -50%); } h3 {  width: 70%;  color: #fff;  margin: 0;  font-size: 0.5rem;  line-height: 1rem;  right: 5%;  bottom: 2.6rem;  text-align: right;  position: absolute;  text-shadow: 1px 1px 10px rgba(0, 0, 0, 0.5);  &:before {   content: "";   width: 3rem;   bottom: -0.6rem;   right: 0;   display: block;   position: absolute;   border: 2px solid @yellow;  } }}.swiper-pagination-bullet-active { background: #fff;}.swiper-container-horizontal > .swiper-pagination-bullets {  bottom: 1rem;  width: 95%;  text-align: right; }

登录后复制

其中 swiper-pagination-bullet-active 代表分页器中当前指示的小圆点的类名。 .swiper-pagination-bullets 代表分页器的类名,详情见pagination分页器内元素的类名 。

关于网络请求数据展示的代码就不贴了,下面有源码地址。

3.效果

Vue封装Swiper实现图片轮播效果的代码分享 

这只是一个简单的封装效果,想要实现更多的效果,可以通过Swiper中提供的更多功能来实现。

相关推荐:

图片轮播组件gallery slider使用方法详解

jQuery实现圆点图片轮播实例分享

Bootstrap图片轮播效果实现方法

以上就是Vue封装Swiper实现图片轮播效果的代码分享的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2787181.html

(0)
上一篇 2025年3月8日 18:04:04
下一篇 2025年3月8日 18:04:11

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • vue页面加载动画效果的实现

    本文主要和大家详细介绍了vue实现页面加载动画效果,vue页面出现正在加载的初始页面与实现动画效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能帮助到大家。   currentPage,    ‘page-current’: o…

    编程技术 2025年3月8日
    200
  • JS实现图片轮播的实例

    本文主要为大家带来一篇使用js实现图片轮播的实例(前后首尾相接),代码参考了一位已经写好了图片轮播功能的(再次表示感谢),但是没有首尾相接的功能,本人在此基础上增加了首尾相接功能。 效果如下: nbsp;html PUBLIC “-//W3…

    2025年3月8日
    200
  • 运动缓冲效果的封装函数示例代码

    之前经常写运动函数,要写好多好多,后来想办法封装起来。(运动缓冲)。本文主要和大家介绍了js实现运动缓冲效果的封装函数,涉及javascript时间函数与数值运算相关操作技巧,需要的朋友可以参考下,希望能帮助到大家。 /*  物体多属性同时…

    编程技术 2025年3月8日
    200
  • 原生JS实现Tab选项卡各种效果

    前一段时间我写了几篇关于css属性的理解和用法方面的文章,今天就不分享css属性了,给大家分享一个我们在实际工作中用到比较多的一个效果——tab选项卡效果。首先,我们先来看看tab选项卡效果是什么样子,以qq新闻为例,有如下效果: 当鼠标滑…

    2025年3月8日 编程技术
    200
  • JS实现运动缓冲效果的封装函数分享

    本文主要和大家介绍了js实现运动缓冲效果的封装函数,涉及javascript时间函数与数值运算相关操作技巧,需要的朋友可以参考下,希望能帮助到大家。 之前经常写运动函数,要写好多好多,后来想办法封装起来。(运动缓冲)。 /*  物体多属性同…

    编程技术 2025年3月8日
    200
  • FileReader实现上传图片前本地预览

    平时做图片上传预览时如果没有特殊的要求就直接先把图片传到后台去,成功之后拿到url再渲染到页面上,这样做在图片比较小的时候没什么问题,大一点的话就会比较慢才能看到预览了,而且还产生了垃圾文件,所以比较好的是上传之前先在本地预览一下。    …

    编程技术 2025年3月8日
    200
  • React Native如何实现图片查看组件

    react native 图片查看组件:react-native-image-viewer,纯js组件,小巧快速的图标查看组件。支持图片放大缩小,支持图片加载失败设置替代图片,支持将图片保存到本地等功能。本文主要和大家介绍了react na…

    2025年3月8日
    200
  • 如何使用python来判断图片相似度

    这次给大家带来如何使用python来判断python相似度,使用python来判断图片相似度的python有哪些,下面就是实战案例,一起来看一下。 python 判断图片相似度一个十分简单的示例,只是个例子,精度可能不是很高。主要介绍一下原…

    编程技术 2025年3月8日
    200
  • 如何在移动端做出1px边框的效果

    这次给大家带来如何在移动端做出1px边框的效果,在移动端做出1px边框的效果的注意事项有哪些,下面就是实战案例,一起来看一下。 背景 在 vue.js 下使用 stylus 实现 1 像素 border 边框,如果使用 css 样式属性 b…

    编程技术 2025年3月8日
    200
  • 用JS做的点击复制效果

    这次给大家带来用js做的点击复制效果,用js做的点击复制效果注意事项有哪些,下面就是实战案例,一起来看一下。 原理:模拟通过全选表单内的textarea数据调用浏览器Copy命令实现复制 示例 nbsp;html>         复…

    编程技术 2025年3月8日
    200

发表回复

登录后才能评论