微信小程序左滑动显示菜单功能的实现


Posted in Javascript onJune 14, 2018

效果图如下所示:

微信小程序左滑动显示菜单功能的实现

微信小程序左滑动显示菜单功能的实现

view

<view class="page"> 
  <!--下层左侧导航--> 
  <view class="page-bottom"> 
    <view class="page-content"> 
       <view class="userinfo"> 
        <view class="userImg"> 
        <image src='/images/user.png'></image> 
        </view> 
        <view class="userText">嗨!你好,{{user.name}}</view> 
       </view> 
      <view bindtap="open_list" wx:for-items="{{nav_list}}" class="page-list"> 
        <view bindtap='gotoUrl' data-id='{{item.url}}'>{{item.name}}</view> 
      </view> 
    </view> 
  </view> 
  <!--上层右侧展示页面--> 
  <view class="page-top {{open ? 'page-state' : ''}}"> 
  <!--上层右侧展示页面遮罩层--> 
   <view class="page-mask {{open ? '' : 'page-mask-show'}}" bindtap="offCanvas"></view> 
   <!--列表按钮--> 
    <image class="left-nav" bindtap="offCanvas" src="/images/Category.png"></image> 
     <!--轮播代码,可以不要--> 
     <scroll-view scroll-y="true" style="height:200px" class="page-body" bindscrolltolower="loadMore"> 
     <view class="swiper"> 
      <view class="sim-panel" style='margin:0px auto;width:100%;padding-top:7%'> 
        <view style='margin-left:7%;width:100%;'> 
          <view class="view-left" bindtap='gotoLocal' > 
           <view class="img-view"> 
            <image src='/images/camera.png' class="imgs"></image> 
           </view> 
           <view class="left-text">现场记录</view> 
          </view> 
          <view class="more-view"> 
           <view class="more" >更多...</view> 
          </view> 
          </view> 
        </view>  
     </view> 
    </scroll-view>  
  </view> 
</view>

css

view-left{ 
 width:40%; 
 float:left; 
 height:150px; 
  background-color:#33AEFD; 
} 
left-text{ 
 text-align: center; 
 color: #fff; 
} 
userinfo{ 
 height:50px; 
} 
userImg{ 
  border:1px solid #fff; 
  height:40px; 
  width:40px; 
  margin:5px; 
  border-radius: 100px; 
  float: left; 
} 
userImg image{ 
  height:40px; 
  width:40px; 
   border-radius: 100px; 
} 
userText{ 
 color: #fff; 
 line-height: 50px; 
} 
img-view{ 
 height:120px; 
 width:80%; 
 margin:0 auto; 
 border:1px solid #33AEFD; 
} 
imgs{ 
 border:2px solid #fff; 
 width:80px; 
 height:80px; 
 margin:20px auto; 
 display: block; 
 border-radius: 100px; 
} 
more-view{ 
 width:40%; 
 float:left; 
 height:150px; 
 margin-left:7%; 
 background-color:#D1D1D1; 
} 
more{ 
 margin:45% auto; 
 text-align:center; 
 color: #fff; 
} 
bottom{ 
 bottom: 0px; 
 position: absolute; 
 margin: 0 auto; 
 width:100%; 
 height:50px; 
} 
page,.page { 
 height: 100%; 
 font-family: 'PingFang SC', 'Helvetica Neue', Helvetica, 'Droid Sans Fallback', 'Microsoft Yahei', sans-serif; 
} 
/*左侧导航列表 */ 
page-bottom{ 
 height: 100%; 
 width: 75%; 
 position: fixed;  
 background-color: rgb(0, 68, 97); 
 z-index: 0; 
} 
page-list{ 
 color: white; 
 padding: 30rpx 0 30rpx 40rpx; 
} 
/*右侧展示层 */ 
page-top{ 
 position: relative; 
 top: 0; 
 left:0; 
 width: 750rpx; 
 height: 100%; 
 background-color: rgb(255, 255, 255); 
 z-index: 0; 
 transition: All 0.4s ease;  
 -webkit-transition: All 0.4s ease; 
} 
page-state{ 
 transform: rotate(0deg) scale(1) translate(75%,0%);  
 -webkit-transform: rotate(0deg) scale(1) translate(75%,0%);  
} 
imgw{width:100%;} 
/*右侧列表按钮 */ 
page-top .left-nav{ 
 position: fixed; 
 width: 68rpx; 
 height: 68rpx; 
 left: 20rpx; 
 bottom: 20rpx; 
} 
/*右侧遮罩层 */ 
page-mask{ 
 position: absolute; 
 width: 100%; 
 height: 100%; 
 top: 0; 
 left: 0; 
 background-color: rgba(0,0,0,0.5); 
 z-index: 998; 
} 
page-mask-show{ 
 display: none; 
}

js

var app = getApp(); 
var data = require('../../utils/data.js'); 
Page({ 
 /** 
  * 页面的初始数据 
  */ 
 data: { 
  addNumber:0, 
  banner_url: data.bannerList(), 
  nav_list: [{ 
   name: "现场记录", 
   url:"../expo-list/expo-list" 
   },{ 
    name: "退出", 
    url: "../login/login" 
  }], 
  user:null, 
  open: false, 
  indicatorDots: true,//是否显示面板指示点 
  autoplay: true,//是否开启自动切换 
  interval: 3000,//自动切换时间间隔 
  duration: 500//滑动动画时长 
 }, 
 gotoUrl:function(e){ 
  wx.navigateTo({ 
   url: e.currentTarget.dataset.id 
  }) 
 }, 
 //列表的操作函数 
 open_list: function () { 
  //此处进行操作 
  this.setData({ 
   open: false 
  }); 
 }, 
 //左侧导航的开关函数 
 offCanvas: function () { 
  if (this.data.open) { 
   this.setData({ 
    open: false 
   }); 
  } else { 
   this.setData({ 
    open: true 
   }); 
  } 
 }, 
})

源码下载:https://download.csdn.net/download/qq_30641447/10475865

Javascript 相关文章推荐
“不能执行已释放的Script代码”错误的原因及解决办法
Sep 09 Javascript
js Array对象的扩展函数代码
Apr 24 Javascript
解决jquery版本冲突的有效方法
Sep 02 Javascript
一个不错的js html页面倒计时可精确到秒
Oct 22 Javascript
javascript文本框内输入文字倒计数的方法
Feb 24 Javascript
JavaScript中setTimeout的那些事儿
Nov 14 Javascript
Bootstrap复选框和单选按钮美化插件(推荐)
Nov 23 Javascript
JS模拟实现ECMAScript5新增的数组方法
Mar 20 Javascript
微信小程序云开发(数据库)详解
May 17 Javascript
Vue的路由及路由钩子函数的实现
Jul 02 Javascript
解决layer.open后laydate失效的问题
Sep 06 Javascript
解决Layui数据表格显示无数据提示的问题
Nov 14 Javascript
vue中如何让子组件修改父组件数据
Jun 14 #Javascript
微信小程序分享功能之按钮button 边框隐藏和点击隐藏
Jun 14 #Javascript
MVVM框架下实现分页功能示例
Jun 14 #Javascript
jQuery实现下拉菜单动态添加数据点击滑出收起其他功能
Jun 14 #jQuery
React 组件间的通信示例
Jun 14 #Javascript
三分钟学会用ES7中的Async/Await进行异步编程
Jun 14 #Javascript
详解React中setState回调函数
Jun 14 #Javascript
You might like
php求数组全排列,元素所有组合的方法
2016/05/05 PHP
php结合redis高并发下发帖、发微博的实现方法
2016/12/15 PHP
ThinkPHP实现转换数据库查询结果数据到对应类型的方法
2017/11/16 PHP
PHP小程序支付功能完整版【基于thinkPHP】
2019/03/26 PHP
CSS心形加载的动画源码的实现
2021/03/09 HTML / CSS
jquery防止重复执行动画避免页面混乱
2014/04/22 Javascript
jquery简单实现带渐显效果的选项卡菜单代码
2015/09/01 Javascript
JS+CSS实现的经典圆角下拉菜单效果代码
2015/10/21 Javascript
解决同一页面中两个iframe互相调用jquery,js函数的方法
2016/12/12 Javascript
利用select实现年月日三级联动的日期选择效果【推荐】
2016/12/13 Javascript
基于jQuery实现的打字机效果
2017/01/16 Javascript
使用原生的javascript来实现轮播图
2017/02/24 Javascript
Angular实现表单验证功能
2017/11/13 Javascript
JS操作Fckeditor的一些常用方法(获取、插入等)
2020/02/19 Javascript
Element Notification通知的实现示例
2020/07/27 Javascript
vue cli3.0打包上线静态资源找不到路径的解决操作
2020/08/03 Javascript
用python实现的去除win下文本文件头部BOM的代码
2013/02/10 Python
从Python的源码来解析Python下的freeblock
2015/05/11 Python
Python迭代和迭代器详解
2016/11/10 Python
python控制windows剪贴板,向剪贴板中写入图片的实例
2018/05/31 Python
python3实现基于用户的协同过滤
2018/05/31 Python
python selenium firefox使用详解
2019/02/26 Python
Django 用户认证组件使用详解
2019/07/23 Python
Python Matplotlib简易教程(小白教程)
2020/07/28 Python
Python浮点型(float)运算结果不正确的解决方案
2020/09/22 Python
python中pyqtgraph知识点总结
2021/01/26 Python
input file上传文件样式支持html5的浏览器解决方案
2012/11/14 HTML / CSS
POP文化和音乐灵感的时尚:Hot Topic
2019/06/19 全球购物
如何查看在weblogic中已经发布的EJB
2012/06/01 面试题
中职生自荐信
2013/10/13 职场文书
《槐乡五月》教学反思
2014/04/25 职场文书
三严三实对照检查材料
2014/09/22 职场文书
自我查摆剖析材料
2014/10/11 职场文书
2015年公司保安年终工作总结
2015/05/14 职场文书
nginx搭建图片服务器的过程详解(root和alias的区别)
2021/03/31 Servers
详解jQuery的核心函数和事件处理
2022/02/18 jQuery