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


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 相关文章推荐
javascript写的一个链表实现代码
Oct 25 Javascript
javascript实现yield的方法
Nov 06 Javascript
JS实现距离上次刷新已过多少秒示例
May 23 Javascript
一个JavaScript获取元素当前高度的实例
Oct 29 Javascript
jQuery提示效果代码分享
Nov 20 Javascript
浅述节点的创建及常见功能的实现
Dec 15 Javascript
微信小程序实现全国机场索引列表
Jan 31 Javascript
小程序绑定用户方案优化小结
May 15 Javascript
Vue CL3 配置路径别名详解
May 30 Javascript
简单了解JavaScript中的执行上下文和堆栈
Jun 24 Javascript
Jquery如何使用animation动画效果改变背景色的代码
Jul 20 jQuery
three.js 实现露珠滴落动画效果的示例代码
Mar 01 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源代码
2006/10/09 PHP
PHP 命令行参数详解及应用
2011/05/18 PHP
php中session_unset与session_destroy的区别分析
2011/06/16 PHP
PHP分页类集锦
2014/11/18 PHP
php获取英文姓名首字母的方法
2015/07/13 PHP
深入解析PHP中foreach语句控制数组循环的用法
2015/11/30 PHP
php实现快速对二维数组某一列进行组装的方法小结
2019/12/04 PHP
JavaScript CSS修改学习第一章 查找位置
2010/02/19 Javascript
js 函数调用模式小结
2011/12/26 Javascript
node.js中的fs.readdirSync方法使用说明
2014/12/17 Javascript
jQuery解决input元素的blur事件和其他非表单元素的click事件冲突问题
2016/08/15 Javascript
Javascript 两种刷新方法以及区别和适用范围
2017/01/17 Javascript
Angular.js基础学习之初始化
2017/03/10 Javascript
代码详解Vuejs响应式原理
2017/12/20 Javascript
通过Kettle自定义jar包供javascript使用
2020/01/29 Javascript
JavaScript逻辑运算符相关总结
2020/09/04 Javascript
利用JavaScript为句子加标题的3种方法示例
2021/01/05 Javascript
关于element的表单组件整理笔记
2021/02/05 Javascript
Python Queue模块详解
2014/11/30 Python
使用graphics.py实现2048小游戏
2015/03/10 Python
Python 字典与字符串的互转实例
2017/01/13 Python
python3 发送任意文件邮件的实例
2018/01/23 Python
Python 最大概率法进行汉语切分的方法
2018/12/14 Python
pandas factorize实现将字符串特征转化为数字特征
2019/12/19 Python
python3的UnicodeDecodeError解决方法
2019/12/20 Python
韩国邮政旗下生鲜食品网上超市:epost
2016/08/27 全球购物
世界第一冲浪品牌:O’Neill
2016/08/30 全球购物
vue+django实现下载文件的示例
2021/03/24 Vue.js
文案策划求职信
2014/03/18 职场文书
校庆标语集锦
2014/06/25 职场文书
支部书记四风对照材料
2014/08/28 职场文书
机关党员三严三实心得体会
2014/10/13 职场文书
美丽的大脚观后感
2015/06/03 职场文书
大学生心理健康教育心得体会
2016/01/12 职场文书
详解Python生成器和基于生成器的协程
2021/06/03 Python
MongoDB修改oplog大小的四种方法
2022/04/11 MongoDB