资讯专栏INFORMATION COLUMN

基于vue实现swipe轮播组件

Enlightenment / 1299人阅读

摘要:项目背景图片轮播是前端项目必有项,当前有很多效果很酷炫的轮播插件,例如。此处应该有掌声,哈哈简而言之,就是当需要一个简单的轮播时,可以选用,自己写一个组件。举个栗子,就是我实现的这个基于实现分页组件,移动端和端均适用哦。

项目背景

图片轮播是前端项目必有项,当前有很多效果很酷炫的轮播插件,例如Swiper。
但是当项目中的图片轮播只需要一个很简单的轮播样式,比如这样的

我们引用这样一个110k的大插件,就大材小用了。再安利一下,swiper2.x和swiper3.x对移动和PC端支持情况如下图

当当当当~~~
我们今天的主角登场了,thebird/Swipe,这个插件完成了图片轮播需要的基本功能,只有14.2k,真真的轻量级 啊。还有,还有

翻译一下,就是俺们全支持,不管你是PC端(IE7+)还是移动端浏览器。此处应该有掌声,哈哈~

简而言之,就是当需要一个简单的轮播时,可以选用thebird/Swipe,自己写一个组件。

举个栗子,就是我实现的这个—— 基于vue实现swipe分页组件,移动端和PC端均适用哦。

Result

Usage

一般情况,轮播图片因为是要经常换的,故在后台定制,定制内容如下

</>复制代码

没有定制,必须在代码里写的话,也是可以的,造一个data数组swipeInfo

</>复制代码

  1. data:{
  2. swipeInfo:[{
  3. href:"http://www.baidu.com",
  4. imgSrc:""
  5. },{
  6. href:"http://www.baidu.com",
  7. imgSrc:""
  8. },{
  9. href:"http://www.baidu.com",
  10. imgSrc:""
  11. }]
  12. },
  13. components: {
  14. "swipe-module": require("pagination-swipe"),
  15. },

在html中绑定该数据

</>复制代码

pagination-swipe组件内容

按照swipe构造html框架,添加了pagination块

</>复制代码

vue构造组件

</>复制代码

  1. //index.js
  2. require("./style.less");
  3. var Swipe = require("swipe");
  4. Vue.component("pagination-swipe",{
  5. props: ["swipeinfo"],
  6. template: require("raw!./template.html"),
  7. data: function() {
  8. return {
  9. mySwipe: {},
  10. slideNum: {},
  11. };
  12. },
  13. ready: function() {
  14. var self = this;
  15. //获取子组件中分页小圈圈
  16. var slides = self.$els.swipe.getElementsByClassName("swipe-pagination-switch");
  17. self.mySwipe = new Swipe(self.$els.swipe, {
  18. startSlide: 0,
  19. continuous: true,
  20. speed: 1000,
  21. auto: 4000,
  22. stopPropagation: false,
  23. callback: function(index, elem) {
  24. //渲染分页小圈圈
  25. for (var i = 0; i < slides.length; i++) {
  26. if (i != index) {
  27. slides[i].style.opacity = "0.2";
  28. slides[i].style.background = "#000";
  29. } else {
  30. slides[index].style.opacity = "1";
  31. slides[index].style.background = "#ee3a4a";
  32. }
  33. }
  34. },
  35. });
  36. self.slideNum = self.mySwipe.getNumSlides() - 1;
  37. },
  38. methods: {
  39. //点击底部小圈圈,跳到其所对应页
  40. slideToCur: function(index) {
  41. var self = this;
  42. self.mySwipe.slide(index, 300);
  43. },
  44. }
  45. });

</>复制代码

  1. .swipe {
  2. overflow: hidden;
  3. visibility: hidden;
  4. position: relative;
  5. height: 200/@rem;
  6. .swipe-wrap {
  7. position: relative;
  8. overflow: hidden;
  9. height: 100%;
  10. div {
  11. float: left;
  12. width: 100%;
  13. position: relative;
  14. margin: 0;
  15. a {
  16. width: 100%;
  17. height: 100%;
  18. background-position: center 0;
  19. background-repeat: no-repeat;
  20. background-color: transparent;
  21. display: block;
  22. img {
  23. width: 100%;
  24. height: 100%;
  25. }
  26. }
  27. }
  28. }
  29. .pagination {
  30. text-align: center;
  31. position: relative;
  32. bottom: 40/@rem;
  33. cursor: pointer;
  34. }
  35. .swipe-pagination-switch {
  36. content: "";
  37. display: inline-block;
  38. width: 8px;
  39. height: 8px;
  40. border-radius: 100%;
  41. background: #000;
  42. opacity: 0.2;
  43. margin: 0 8px;
  44. z-index: 10;
  45. &:first-child {
  46. background: #ee3a4a;
  47. }
  48. }
  49. .swipe-active-switch {
  50. opacity: 1;
  51. }
  52. }
相关推荐

目前基于vue有一个vue-swipe组件,亲测轻量简单易用,基本功能齐全,是做swipe轮播图很好的选择

但是这个有一些问题,

如果样式放在scoped中,底部小圈圈就不见了~所以,这个的样式使用需要注意样式污染问题.

IE9下没有滑动效果,主要是ie9对css3动画的不兼容

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/91114.html

相关文章

  • swiper的使用

    摘要:是一款轮播图插件,我是用在里面,方便省事儿。官网地址地址安装安装完成之后,我没有在中注册它,而是在使用页面注册的。因为通常来说轮播图只会在一个应用的首页展示,所以就没必要在全局注册它,只用在页面注册使用一下就可以了。 swipe是一款轮播图插件,我是用在vue里面,方便省事儿。swipe里面有很多关于滑动的组建,我只用过轮播图,如果以后有时间,可以再看看官网上别的组件介绍。官网地址 g...

    makeFoxPlay 评论0 收藏0
  • swiper的使用

    摘要:是一款轮播图插件,我是用在里面,方便省事儿。官网地址地址安装安装完成之后,我没有在中注册它,而是在使用页面注册的。因为通常来说轮播图只会在一个应用的首页展示,所以就没必要在全局注册它,只用在页面注册使用一下就可以了。 swipe是一款轮播图插件,我是用在vue里面,方便省事儿。swipe里面有很多关于滑动的组建,我只用过轮播图,如果以后有时间,可以再看看官网上别的组件介绍。官网地址 g...

    MyFaith 评论0 收藏0
  • swiper的使用

    摘要:是一款轮播图插件,我是用在里面,方便省事儿。官网地址地址安装安装完成之后,我没有在中注册它,而是在使用页面注册的。因为通常来说轮播图只会在一个应用的首页展示,所以就没必要在全局注册它,只用在页面注册使用一下就可以了。 swipe是一款轮播图插件,我是用在vue里面,方便省事儿。swipe里面有很多关于滑动的组建,我只用过轮播图,如果以后有时间,可以再看看官网上别的组件介绍。官网地址 g...

    aaron 评论0 收藏0
  • VUE实例图解

    摘要:案例品牌列表构建基本结构利用的样式数据要双向更新,所以要用到,同时在后面的中要进行初始化为添加按钮绑定事件的中,绑定值为关键字删除标签绑定函数,传入参数的时候,需要用括号事件修饰符,表示阻止默认事件实例对象新建一个实例函数中初始化需要双向 VUE案例 品牌列表 构建基本结构 利用bootstrap的样式 showImg(https://segmentfault.com/img/bVbf...

    wqj97 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<