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

效果图如下所示:

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

(0)

相关推荐

  • 微信小程序模板之分页滑动栏

    本文实例为大家分享了微信小程序分页滑动栏的具体代码,供大家参考,具体内容如下 功能: 1.分页栏与滑动视图绑定 2.点击分页栏自动滑动到对应视图 3.滑动的到视图对应分页栏自动显示选中样式 效果图 上代码 wxml <view class="tapNav"> <view class="{{tabArr.tabCurrentIndex==0?'active':''}}" data-index="0" bindtap="v

  • Android实现自定义滑动式抽屉效果菜单

    在Andoird使用Android自带的那些组件,像SlidingDrawer和DrawerLayout都是抽屉效果的菜单,但是在项目很多要实现的功能都收到Android这些自带组件的限制,导致很难完成项目的需求,自定义的组件,各方面都在自己的控制之下,从而根据需求做出调整.想要实现好的效果,基本上都的基于Android的OnTouch事件自己实现响应的功能. 首先,给大家先看一下整体的效果: 滑动的加速度效果都是有的,具体的体验,只能安装后才能查看. 接下来,看代码: 代码从MainActiv

  • 微信小程序-横向滑动scroll-view隐藏滚动条

    wxml <scroll-view class="recommend_scroll_x_box" scroll-x="true"> <view class="recommend_hot_box" wx:for="{{hotList}}"> <image src="{{item.pic}}" class="recommend_hot_image"><

  • 微信小程序实现移动端滑动分页效果(ajax)

    一般在PC上我们要分页都是通过上一页和下一页来实现的,手机通过当下滑到一定程度的时候自动加载下一页面. 实现思路:首先加载部分数据,当下滑到某个元素可见的时候,如果还有数据,则新发送请求,然后追加在当前页面. /* *<div class='topicBox' id='listBox'> *</div> */ //判断元素是否进入可视区域 function see(objLiLast) { //浏览器可视区域的高度 var see = document.documentElemen

  • 微信小程序 实现列表项滑动显示删除按钮的功能

    微信小程序 实现列表项滑动显示删除按钮的功能 微信小程序并没有提供列表控件,所以也没有iOS上惯用的列表项左滑删除的功能,SO只能自己干了. 原理很简单,用2个层,上面的层显示正常的内容,下面的层显示一个删除按钮,就是记录手指滑动的距离,动态的来移动上层元素,当然上层用绝对定位. wxml: <view class="container"> <view class="record-box" data-datetime="{{record.

  • Android实现顶部导航菜单左右滑动效果

    本文给大家介绍在Android中如何实现顶部导航菜单左右滑动效果,具体内容如下 第一种解决方案: 实现原理是使用android-support-v4.jar包中ViewPager控件,在ViewPager控件中设置流布局,再在流布局中设置几项TextView,给每一个TextView设置相关参数,事件等.关于ViewPager控件可以设置全屏幕滑动效果,当然也可以实现局部滑动效果,下面介绍导航菜单. 关于导航菜单,相信大家对它并不陌生,比如在新闻客户端中就经常使用左右滑动菜单来显示不同类别的新闻

  • 微信小程序左右滑动切换页面详解及实例代码

    微信小程序--左右滑动切换页面事件 微信小程序的左右滑动触屏事件,主要有三个事件:touchstart,touchmove,touchend. 这三个事件最重要的属性是pageX和pageY,表示X,Y坐标. touchstart在触摸开始时触发事件; touchend在触摸结束时触发事件; touchmove触摸的过程中不断激发这个事件; 这三个事件都有一个timeStamp的属性,查看timeStamp属性,可以看到顺序是touchstart => touchmove=> touchmov

  • 微信小程序 向左滑动删除功能的实现

    微信小程序 向左滑动删除功能的实现 实现效果图: 实现代码: 1.wxml touch-item元素绑定了bindtouchstart.bindtouchmove事件 <view class="container"> <view class="touch-item {{item.isTouchMove ? 'touch-move-active' : ''}}" data-index="{{index}}" bindtouchst

  • 微信小程序实战之仿android fragment可滑动底部导航栏(4)

    底部3-5个选项的底部导航栏,目前在移动端上是主流布局之一,因此腾讯官方特地做了,可以通过设置,就可以做出了一个底部的导航栏. 相关教程:微信小程序教程系列之设置标题栏和导航栏(7) 但是通过设置的这个底部的导航栏,功能上比较固定,它必须要设置与它对应的一个页面,而且并不能滑动. 在业务上,有时候会比较限制,并不能完全满足所需. 又例如早前有人拿着UI稿问我,这种广告轮播图的样式,在小程序能不能实现呢? 我当时没有想了下,还不是很确定,因为小程序的轮播图的那几个小点点实在比较普通,样式单一. 因

  • 微信小程序图片横向左右滑动案例

    本文实例为大家分享了微信小程序图片左右滑动的具体代码,供大家参考,具体内容如下 图片左右滑动效果图: wxml代码: <scroll-view scroll-x="true"> <view class="uploadWrap" scroll-x="true"> <view class="upload_Item"> <image class="upload_Item_img&q

随机推荐