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


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折腾得半死,揭秘为何jQuery为何在IE/Firefox下均无法使用
Jan 22 Javascript
用js脚本控制asp.net下treeview的NodeCheck的实现代码
Mar 02 Javascript
js自执行函数的几种不同写法的比较
Aug 16 Javascript
Jquery 自定义动画概述及示例
Mar 29 Javascript
原生js仿jquery animate动画效果
Jul 13 Javascript
微信开发 js实现tabs选项卡效果
Oct 28 Javascript
如何判断出一个js对象是否一个dom对象
Nov 24 Javascript
Angular实现点击按钮后在上方显示输入内容的方法
Dec 27 Javascript
全新打包工具parcel零配置vue开发脚手架
Jan 11 Javascript
vue下history模式刷新后404错误解决方法
Aug 18 Javascript
vuejs 制作背景淡入淡出切换动画的实例
Sep 01 Javascript
微信小程序的开发范式BeautyWe.js入门详解
Jul 10 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开发GUI
2006/10/09 PHP
深入PHP empty(),isset(),is_null()的实例测试详解
2013/06/06 PHP
php获取目录所有文件并将结果保存到数组(实例)
2013/10/25 PHP
php生成二维码时出现中文乱码的解决方法
2014/12/18 PHP
php+xml编程之SimpleXML的应用实例
2015/01/24 PHP
win7安装php框架Yii的方法
2016/01/25 PHP
Yii框架实现图片上传的方法详解
2017/05/20 PHP
在Laravel5.6中使用Swoole的协程数据库查询
2018/06/15 PHP
js 程序执行与顺序实现详解
2013/05/13 Javascript
Bootstrap Fileinput文件上传组件用法详解
2016/05/10 Javascript
详解react服务端渲染(同构)的方法
2017/09/21 Javascript
Puppet的一些技巧
2018/09/17 Javascript
使用vue制作滑动标签
2019/09/21 Javascript
layui--select使用以及下拉框实现键盘选择的例子
2019/09/24 Javascript
AngularJS动态生成select下拉框的方法实例
2019/11/17 Javascript
Vue Router 实现动态路由和常见问题及解决方法
2020/03/06 Javascript
JavaScript对象字面量和构造函数原理与用法详解
2020/04/18 Javascript
[25:59]Newbee vs TNC 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
python自然语言编码转换模块codecs介绍
2015/04/08 Python
python3.x 将byte转成字符串的方法
2018/07/17 Python
用HTML5制作视频拼图的教程
2015/05/13 HTML / CSS
HTML5事件方法全部汇总
2016/05/12 HTML / CSS
HTML5 直播疯狂点赞动画实现代码 附源码
2020/04/14 HTML / CSS
DHC美国官网:日本通信销售第一的化妆品品牌
2017/11/12 全球购物
美国著名的户外用品品牌:L.L.Bean
2018/01/05 全球购物
塑料制成的可水洗的编织平底鞋和鞋子:Rothy’s
2018/09/16 全球购物
自动化专业毕业生自荐信
2013/11/01 职场文书
前处理组长岗位职责
2014/03/01 职场文书
统计专业自荐书
2014/07/06 职场文书
董事长开业致辞
2015/07/29 职场文书
Python面向对象编程之类的概念
2021/11/01 Python
php实例化对象的实例方法
2021/11/17 PHP
企业开发CSS命名BEM代码规范实践
2022/02/12 HTML / CSS
Python列表的索引与切片
2022/04/07 Python
安装Windows Server 2012 R2企业版操作系统并设置好相关参数
2022/04/29 Servers
PHP 时间处理类Carbon
2022/05/20 PHP