缩放:wxml

<!--page/one/index.wxml-->
<view class="page">
<view class="page-bottom">
<view class="page-content">
<view class="wc">
<navigator url="../one/index" hover-class="navigator-hover">第一个菜单</navigator>
</view>
<view class="wc">
<navigator url="../two/index" hover-class="navigator-hover">第二个菜单(缩放)</navigator>
</view>
<view class="wc">
<navigator url="../three/index" hover-class="navigator-hover">第三个菜单(拖动)</navigator>
</view>
<view class="wc">
<navigator url="../four/index" hover-class="navigator-hover">第四个菜单</navigator>
</view>
</view>
</view>
<view class="page-top {{open ? 'c-state2' : ''}}">
<image bindtap="tap_ch" src="../../images/btn.png"></image>
<view class="text">第二个菜单(缩放)</view>
</view>
</view>

  js

Page({
data:{
open : false//这个数据是用来上面一层页面是覆盖在屏幕上还是在旁边
},
tap_ch: function(e){//点击的时候设置这个属性的值
if(this.data.open){
this.setData({
open : false//之前是打开的话现在设置为关闭
});
}else{
this.setData({
open : true
});
}
}
})

  wxss

page,.page {
height: 100%;
font-family: 'PingFang SC', 'Helvetica Neue', Helvetica, 'Droid Sans Fallback', 'Microsoft Yahei', sans-serif;
}
.page-bottom{
height: 100%;
width: 750rpx;
position: fixed;
background-color: rgb(0, 68, 97);
z-index: 0;
}
.wc{
color: white;
padding: 30rpx 0 30rpx 40rpx;
}
.page-content{
padding-top: 300rpx;
}
.page-top{
height: 100%;
position: fixed;
width: 750rpx;
background-color: rgb(57, 125, 230);
z-index: 0;
transition: All 0.4s ease;
-webkit-transition: All 0.4s ease;
}
.page-top image{
position: absolute;
width: 68rpx;
height: 38rpx;
left: 20rpx;
top: 20rpx;
}
.c-state1{//这个是平滑的
transform: rotate(0deg) scale(1) translate(75%,0%);
-webkit-transform: rotate(0deg) scale(1) translate(75%,0%);
}
.c-state2{//这个是带缩放的
transform: rotate(0deg) scale(.8) translate(75%,0%);
-webkit-transform: rotate(0deg) scale(.8) translate(75%,0%);
}
.text{
margin: auto;
margin-top: 20rpx;
margin-left: 130rpx;
vertical-align: middle;
color: white;
}

  平滑的wxml

<view class="page">
<view class="page-bottom">
<view class="page-content">
<view class="wc">
<navigator url="../one/index" hover-class="navigator-hover">第一个菜单</navigator>
</view>
<view class="wc">
<navigator url="../two/index" hover-class="navigator-hover">第二个菜单(缩放)</navigator>
</view>
<view class="wc">
<navigator url="../three/index" hover-class="navigator-hover">第三个菜单(拖动)</navigator>
</view>
<view class="wc">
<navigator url="../four/index" hover-class="navigator-hover">第四个菜单</navigator>
</view>
</view>
</view>
<view bindtouchmove="tap_drag" bindtouchend="tap_end" bindtouchstart="tap_start" class="page-top {{open ? 'c-state1' : ''}}">
<image bindtap="tap_ch" src="../../images/btn.png"></image>
<view class="text">第三个菜单(拖动)</view>
</view>
</view>

  js

// page/one/index.js
Page({
data:{
open : false,
mark: 0,
newmark: 0,
istoright:true
},
tap_ch: function(e){
if(this.data.open){
this.setData({
open : false
});
}else{
this.setData({
open : true
});
}
},
tap_start:function(e){
// touchstart事件
this.data.mark = this.data.newmark = e.touches[0].pageX;
},
tap_drag: function(e){
// touchmove事件 /*
* 手指从左向右移动
* @newmark是指移动的最新点的x轴坐标 , @mark是指原点x轴坐标
*/
this.data.newmark = e.touches[0].pageX;
if(this.data.mark < this.data.newmark){
this.istoright = true;
}
/*
* 手指从右向左移动
* @newmark是指移动的最新点的x轴坐标 , @mark是指原点x轴坐标
*/
if(this.data.mark > this.data.newmark){
this.istoright = false; }
this.data.mark = this.data.newmark; },
tap_end: function(e){
// touchend事件
this.data.mark = 0;
this.data.newmark = 0;
if(this.istoright){
this.setData({
open : true
});
}else{
this.setData({
open : false
});
}
}
})

  

小程序仿QQ侧滑例子的更多相关文章

  1. 微信小程序仿朋友圈功能开发(发布、点赞、评论等功能)

    微信小程序仿朋友圈功能开发(发布.点赞.评论等功能) 1.项目分析 项目整体分为三个部分 发布 展示 详情页 graph LR 朋友圈发布 --内容发布--> 内容展示 内容展示 --点击展示卡 ...

  2. android开发学习 ------- 仿QQ侧滑效果的实现

    需要做一个仿QQ侧滑删除的一个效果: 一开始是毫无头绪,百度找思路,找到  https://blog.csdn.net/xiaxiazaizai01/article/details/53036994  ...

  3. 微信小程序--仿微信小程序朋友圈Pro(内容发布、点赞、评论、回复评论)

    微信小程序--仿微信小程序朋友圈Pro(内容发布.点赞.评论.回复评论) 项目开源地址M朋友圈Pro 求个Star 项目背景 ​ 基于原来的开源项目 微信小程序仿朋友圈功能开发(发布.点赞.评论等功能 ...

  4. 微信小程序仿手机相册组件——简单版

    仿手机相册的微信小程序组件,具备点击图片预览,长按图片出现多选框功能,读者可以根据自己的需求,依据现有数据进行删除等操作.话不多说,先看效果: 初始效果:  长按效果: 选择效果: 注意:当前只是简单 ...

  5. 微信小程序实现左侧滑栏

    前言 一直想给项目中的小程序设置侧滑栏,将退出按钮放到侧滑中,但是小程序没有提供相应的控件和API,因此只能自己手动实现,网上很多大神造的轮子很不错,本文就在是站在巨人的肩膀上实现. 效果 先看看效果 ...

  6. iOS仿QQ侧滑菜单、登录按钮动画、仿斗鱼直播APP、城市选择器、自动布局等源码

    iOS精选源码 QQ侧滑菜单,右滑菜单,QQ展开菜单,QQ好友分组 登录按钮 3分钟快捷创建高性能轮播图 ScrollView嵌套ScrolloView(UITableView .UICollecti ...

  7. SpringBoot实现微信小程序登录的完整例子

    目录 一.登录流程 二.后端实现 1.SpringBoot项目结构树 2.实现auth.code2Session 接口的封装 3.建立用户信息表及用户增删改查的管理 4.实现登录认证及令牌生成 三.前 ...

  8. 微信小程序 - 仿南湖微科普小程序游戏环节

    最近看到南湖微科普小程序游戏环节感觉还可以,于是模仿了下 <view class='current' animation="{{animation}}"> {{curr ...

  9. 微信小程序——仿jqueryValidate表单验证插件WxValidate的二次封装(一)

    在做web开发时,表单验证插件我们前端用的是jqueryValidate,由于个人主要精力是在后台JAVA开发上,为了让插件与后台更好的结合和使用,通过JAVA的自定义组件将表单全部重新写了一边,同时 ...

随机推荐

  1. CNN - 卷积神经网络

    例:  卷积公式: 卷积和卷积没有什么特别的关系,只是计算步骤比较像,成为卷积神经网络名字的由来. 感受野:单个感觉神经元的感受野是感觉空间的特定区域(如体表或视野),在这个区域内,刺激会改变神经元的 ...

  2. JavaScript Dom0 Dom1

    行为 样式 结构相分离的页面 JS        CSS       HTML DOM 0写法 <!DOCTYPE html> <html lang="en"&g ...

  3. Python Redis set集合

    Set操作.Set集合就是不允许重复的列表 (无序集合) sadd(name,values) # name对应的集合中添加元素 scard(name) # 获取name对应的集合中元素个数 sdiff ...

  4. charles License

    ubuntu charles 配置 Ubuntu16.04系统Charles的配置   key1: Registered Name: https://zhile.io License Key: 488 ...

  5. 小技巧:windows软件窗口键盘移动

    alt+tab alt+空格 m键,上下左右操作

  6. HTTP的简单的解析

    HTTP 中文全称为超文本传输协议是一种为分布式,合作式,多媒体信息系统服务,面向应用层的协议.它是一种通用的,不分状态(stateless)的协议,除了诸如名称服务和分布对象管理系统之类的超文本用途 ...

  7. 3rd,Python登录模拟

    需求: 1. 用户输入帐号密码进行登陆 2. 用户信息保存在文件内 3. 用户密码输入错误三次后锁定用户 #导入getpass库,用于密码验证 import getpass #定义用户名.密码 _us ...

  8. 【NET Core】 缓存 MemoryCache 和 Redis

    缓存接口 ICacheService using System; using System.Collections.Generic; using System.Threading.Tasks; nam ...

  9. 两个python安装模块后 ImportError: No module named

    问题描述:我的电脑安装了默认的arcgis自带的python,还自己安装了anaconda,所以有两个位置的python2.7 我自己使用arcgis的程序的时候,调用默认的那些是可以用的,但想使用d ...

  10. centos 打印机安装方法

    这里安装的是hplip 1.首先确定cups有没有安装 没有的话 yum install cups 安装 2.安装 hplip yum install -y hplip hplip-* 3执行 hp- ...