vue+swiper实现侧滑菜单效果


Posted in Javascript onDecember 28, 2017

本文实例为大家分享了vue swiper实现侧滑菜单效果的具体代码,供大家参考,具体内容如下

先上效果图:

vue+swiper实现侧滑菜单效果

这个左右滑动以及上下滑动主要使用了Swiper的轮播功能,首先是该自定义组件的代码:

<template> 
 <div class="s-slider"> 
 <swiper :options="horizontalSwiperOptions" ref="horizontalSwiper"> 
  <swiper-slide class="left" ref="left" v-bind:style="{'background':getRandomColor()}"> 
  <slot name="left"></slot> 
  </swiper-slide> 
  <swiper-slide class="content"> 
  <swiper :options="verticalSwiperOptions" ref="verticalSwiper"> 
   <swiper-slide class="top" ref="top" v-bind:style="{'background':getRandomColor()}"> 
   <slot name="top"></slot> 
   </swiper-slide> 
   <swiper-slide class="content" ref="content" v-bind:style="{'background':getRandomColor()}"> 
   <slot name="content"></slot> 
   </swiper-slide> 
   <swiper-slide class="bottom" ref="bottom" v-bind:style="{'background':getRandomColor()}"> 
   <slot name="bottom"></slot> 
   </swiper-slide> 
  </swiper> 
  </swiper-slide> 
  <swiper-slide class="right" ref="right" v-bind:style="{'background':getRandomColor()}"> 
  <slot name="right"></slot> 
  </swiper-slide> 
 </swiper> 
 </div> 
</template> 
<script> 
 import {swiper, swiperSlide, swiperWraper} from 'vue-awesome-swiper' 
 export default { 
 name: "s-slider", 
 props: ['leftWidth','rightWidth','topHeight','bottomHeight'], 
 data() { 
  return { 
  horizontalSwiperOptions: { 
   slidesPerView: 'auto', 
   initialSlide: 0, 
   direction: 'horizontal' 
  }, 
  verticalSwiperOptions:{ 
   slidesPerView: 'auto', 
   initialSlide: 0, 
   direction: 'vertical' 
  } 
  } 
 }, 
 mounted() { 
  setTimeout(() => { 
  this._initMenuWidth(); 
  }, 20); 
 
 }, 
 methods: { 
  _initMenuWidth() { 
  this.$refs.left.$el.style.width = this.leftWidth; 
  this.$refs.right.$el.style.width = this.rightWidth; 
  this.$refs.top.$el.style.height = this.topHeight; 
  this.$refs.bottom.$el.style.height = this.bottomHeight; 
  this.horizontalSwiper.updateSlides(); 
  this.horizontalSwiper.slideTo(1, 1000, false); 
  this.verticalSwiper.updateSlides(); 
  this.verticalSwiper.slideTo(1, 1000, false); 
  }, 
  /*获取随机颜色*/ 
  getRandomColor() { 
  return "#" + ("00000" + ((Math.random() * 16777215 + 0.5) >> 0).toString(16)).slice(-6); 
  } 
 }, 
 computed: { 
  horizontalSwiper() { 
  return this.$refs.horizontalSwiper.swiper; 
  }, 
  verticalSwiper(){ 
  return this.$refs.verticalSwiper.swiper; 
  } 
 } 
 } 
</script> 
 
<style scoped lang="scss"> 
 @import "src/base/css/public/variable.scss"; 
 @import "swiper/dist/css/swiper.css"; 
 
 .s-slider { 
 height: 100%; 
 color: white; 
 .swiper-container { 
  @include fill-with-parent 
 } 
 } 
</style>

 该组件自定义了四个属性,分别是左右侧滑菜单的宽度,上下滑动菜单的高度,leftWdith、rightWidth、topHeight、bottomHeight,然后用了一个横向的轮播用来存放左滑菜单,中间内容,右滑菜单,然后在中间内容又放了一个纵向的轮播用来放置上滑菜单,内容以及下滑菜单,具体思路就是这样。在组件挂载的时候,需要根据父组件传入的数值去初始化四个菜单的宽高,初始化完毕宽高之后,还要调用swiper本身的updateSlides更新所有的slides,不然滑动的时候,还是按照没设置之前的宽高进行滑动。在父组件中调用:

<s-slider leftWidth="200px" rightWidth="300px" topHeight="100px" bottomHeight="150px"> 
  <div slot="left"> 
  left 
  </div> 
  <div slot="content"> 
  Content 
  </div> 
  <div slot="right"> 
  right 
  </div> 
  <div slot="top"> 
  top 
  </div> 
  <div slot="bottom"> 
  bottom 
  </div> 
 </s-slider>

不要忘了在父组件中还要引入这个vue组件。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
浅谈JavaScript中面向对象技术的模拟
Sep 25 Javascript
在IE,Firefox,Safari,Chrome,Opera浏览器上调试javascript
Dec 02 Javascript
一个JavaScript操作元素定位元素的实例
Oct 29 Javascript
jquery实现textarea输入框限制字数的方法
Jan 15 Javascript
js实现一个链接打开两个链接地址的方法
May 12 Javascript
Javascript随机标签云代码实例
Jun 21 Javascript
浅析Javascript ES6新增值比较函数Object.is
Aug 24 Javascript
jQuery实现的模拟弹出窗口功能示例
Nov 24 Javascript
Angular指令封装jQuery日期时间插件datetimepicker实现双向绑定示例
Jan 22 Javascript
通过一次报错详细谈谈Point事件
May 17 Javascript
微信小程序实现分享朋友圈的图片功能示例
Jan 18 Javascript
大转盘抽奖小程序版 转盘抽奖网页版
Apr 16 Javascript
swiper插件自定义切换箭头按钮
Dec 28 #Javascript
swiper移动端轮播插件(触碰图片之后停止轮播)
Dec 28 #Javascript
Vue组件通信之Bus的具体使用
Dec 28 #Javascript
基于Swiper实现移动端页面图片轮播效果
Dec 28 #Javascript
Swiper自定义分页器使用详解
Dec 28 #Javascript
swiper自定义分页器使用方法详解
Sep 14 #Javascript
JavaScript实现数值自动增加动画
Dec 28 #Javascript
You might like
《魔兽争霸3》重制版究竟重制了什么?玩家:这么糊弄真的好吗?
2020/05/04 魔兽争霸
推荐php模板技术[转]
2007/01/04 PHP
php MySQL与分页效率
2008/06/04 PHP
不用mod_rewrite直接用php实现伪静态化页面代码
2008/10/04 PHP
解决PHP超大文件下载,断点续传下载的方法详解
2013/06/06 PHP
Zend Framework实现留言本分页功能(附demo源码下载)
2016/03/22 PHP
Ajax+PHP实现的分类列表框功能示例
2019/02/11 PHP
摘自启点的main.js
2008/04/20 Javascript
jquery jqPlot API 中文使用教程(非常强大的图表工具)
2011/08/15 Javascript
onkeypress字符按键兼容所有浏览器使用介绍
2013/04/24 Javascript
js实现刷新iframe的方法汇总
2015/04/27 Javascript
正则 js分转元带千分符号详解
2017/03/08 Javascript
angular2+nodejs实现图片上传功能
2017/03/27 NodeJs
简单的vuex 的使用案例笔记
2018/04/13 Javascript
探索JavaScript中私有成员的相关知识
2019/06/13 Javascript
在js文件中引入(调用)另一个js文件的三种方法
2020/09/11 Javascript
python使用心得之获得github代码库列表
2014/06/25 Python
python实现根据图标提取分类应用程序实例
2014/09/28 Python
用Python编写一个国际象棋AI程序
2014/11/28 Python
Python的Flask框架中使用Flask-SQLAlchemy管理数据库的教程
2016/06/14 Python
Python 迭代器与生成器实例详解
2017/05/18 Python
python机器学习理论与实战(一)K近邻法
2021/01/28 Python
python中ImageTk.PhotoImage()不显示图片却不报错问题解决
2018/12/06 Python
对python GUI实现完美进度条的示例详解
2018/12/13 Python
Python3中的bytes和str类型详解
2019/05/02 Python
kafka-python 获取topic lag值方式
2019/12/23 Python
python批量修改xml属性的实现方式
2020/03/05 Python
python使用多线程查询数据库的实现示例
2020/08/17 Python
利用HTML5中的Canvas绘制一张笑脸的教程
2015/05/07 HTML / CSS
GLAMGLOW香港官网:明星出镜前的秘密武器
2017/03/16 全球购物
大码女装:Ulla Popken
2019/08/06 全球购物
心得体会开头
2014/01/01 职场文书
2014年统战工作总结
2014/12/09 职场文书
卡特教练观后感
2015/06/08 职场文书
springboot入门 之profile设置方式
2022/04/04 Java/Android
win10电脑双屏显示一个黑屏怎么办?win10电脑双屏显示一个黑屏解决方法
2022/07/15 数码科技