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


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 相关文章推荐
jquery+html5制作超酷的圆盘时钟表
Apr 14 Javascript
JavaScript实现选择框按比例拖拉缩放的方法
Aug 04 Javascript
jQuery实现切换页面过渡动画效果
Oct 29 Javascript
基于JS代码实现实时显示系统时间
Jun 16 Javascript
AngularJS实用开发技巧(推荐)
Jul 13 Javascript
详解Ubuntu安装angular-cli遇到的坑
Sep 08 Javascript
在小程序/mpvue中使用flyio发起网络请求的方法
Sep 13 Javascript
angularJs自定义过滤器实现手机号信息隐藏的方法
Oct 08 Javascript
js中console在一行内打印字符串和对象的方法
Sep 10 Javascript
JavaScript工具库MyTools详解
Jan 01 Javascript
原生JS实现天气预报
Jun 16 Javascript
类和原型的设计模式之复制与委托差异
Jul 07 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
mysql5写入和读出乱码解决
2006/11/25 PHP
PHP flock 文件锁详细介绍
2012/12/29 PHP
ThinkPHP中自定义目录结构的设置方法
2014/08/15 PHP
学习php设计模式 php实现门面模式(Facade)
2015/12/07 PHP
thinkPHP中验证码的简单使用方法
2015/12/26 PHP
PHP常用的三种设计模式
2017/02/17 PHP
Zend Framework框架中实现Ajax的方法示例
2017/06/27 PHP
判断iframe是否加载完成的完美方法
2010/01/07 Javascript
JQuery验证jsp页面属性是否为空(实例代码)
2013/11/08 Javascript
nodejs教程之入门
2014/11/21 NodeJs
AngularJS语法详解(续)
2015/01/23 Javascript
举例详解Python中smtplib模块处理电子邮件的使用
2015/06/24 Javascript
js阻止移动端页面滚动的两种方法
2017/01/25 Javascript
nodejs处理图片的中间件node-images详解
2017/05/08 NodeJs
原生js实现简单的链式操作
2017/07/04 Javascript
highcharts 在angular中的使用示例代码
2017/09/20 Javascript
react-native动态切换tab组件的方法
2018/07/07 Javascript
vue-router判断页面未登录自动跳转到登录页的方法示例
2018/11/04 Javascript
vux-scroller实现移动端上拉加载功能过程解析
2019/10/08 Javascript
Vue computed 计算属性代码实例
2020/04/22 Javascript
vue使用echarts画组织结构图
2021/02/06 Vue.js
python使用scrapy解析js示例
2014/01/23 Python
Python unittest模块用法实例分析
2018/05/25 Python
Django数据库连接丢失问题的解决方法
2018/12/29 Python
python之生产者消费者模型实现详解
2019/07/27 Python
video实现有声音自动播放的实现方法
2020/05/20 HTML / CSS
工商学院毕业生个人自我评价
2013/09/19 职场文书
历史学专业推荐信
2013/11/06 职场文书
毕业典礼主持词大全
2014/03/26 职场文书
世博会口号
2014/06/20 职场文书
党性心得体会
2014/09/03 职场文书
2014年部门工作总结
2014/11/12 职场文书
2016元旦文艺汇演主持词
2015/07/06 职场文书
2019个人工作总结
2019/06/21 职场文书
pandas DataFrame.shift()函数的具体使用
2021/05/24 Python
MySQL5.7并行复制原理及实现
2021/06/03 MySQL