当前位置: 首页 > 编程日记 > 正文

【微信小程序】侧滑栏,手动侧滑出个人中心(完整代码附效果图)

微信小程序开发交流qq群   581478349

   承接微信小程序开发。扫码加微信。

正文:

博文分三部分,1.效果图及功能效果说明  2.实现思路  3.源代码  欢迎加入微信小程序开发交流群(173683895)

一.老惯例先上效果图,本篇博文实现了微信小程序的侧滑栏效果,有两种侧滑方式,

1.手指触摸滑动

(1).手指触摸页面向左滑动开始到结束的距离超过设定的距离就会滑出个人中心

(2).手指触摸页面向右滑动开始到结束的距离超过设定的距离就会隐藏个人中心

2.点击事件

(1).点击图标滑出侧滑栏

(2).出现个人中心的侧滑栏之后点击遮罩层可隐藏侧滑栏。

二. 实现思路 :
1.把页面分成三个部分, 第一,侧滑栏部分, 第二,主页部分 , 第三遮罩层部分,首先侧滑栏和遮罩层都不能显示,所以设置主页的权重为(z-index:1),侧滑栏权重(z-index:0),遮罩层(display:none; )隐藏
2.写四个事件 , 分别是
滑动侧滑手指触摸开始事件
滑动侧滑手指触摸结束事件
点击遮罩栏返回主页事件
点击图片出现侧滑动画事件
3.获取屏幕的宽度:wx.getSystemInfoSync().windowWidth,并且创建两个全局变量var start_clientX;var end_clientX;
,用于保存手指触摸开始的坐标和手指触摸结束时的坐标,当执行滑动侧滑手指触摸结束事件 时,执行判断语句
if (end_clientX - start_clientX > 50) {
this.setData({
display: "block",
translate: 'transform: translateX(' + this.data.windowWidth * 0.7 + 'px);'
})
}
translate(绑定主页的style)会往右边平移屏幕宽度的百分之70;这样就实现了


4.点击遮罩层隐藏侧滑栏
// 点击遮罩栏返回主页事件
hideview: function () {
this.setData({
display: "none",
translate: '',
})
}, 
display(绑定遮罩层的)值为none 隐藏遮罩层,
translate(绑定主页的style) 清空刚才设置的平移的样式,因为主页的权重(z-index:1)比侧滑栏权重(z-index:0)高,所以这里就实现
了返回主页。
5.实现点击图片出现侧滑栏
// 点击出现侧滑动画
tap_ch: function (e) {
this.setData({
display: "block",
translate: 'transform: translateX(' + this.data.windowWidth * 0.7 + 'px);'
})
},
代码同3,不做讲解了。

三.完整源代码

<view class="page" bindtouchend='touchend' bindtouchstart='touchstart'><!-- 侧滑栏 --><view class="page_tab"><block wx:if="{{user_name ===''}}"><navigator url='../login/login'><image class='user_head' src='../../image/user_head.png'></image><view class='user_name'>未登录</view></navigator></block><block wx:else><image class='user_head' src='{{user_head}}'></image><view class='user_name'>{{user_name}}</view></block><view class="page_tab_content"><navigator url='../order/order'><view class="wc"><image src='../../image/indent.png'></image><text>订单记录</text></view></navigator><view class="wc"><image src='../../image/my_profile.png'></image><text bindtap='tosat'>我的资料</text></view><view class="wc"><view style='position:absolute;opacity: 0;   top: 10px; '><contact-button size="27" class='pos'></contact-button><contact-button size="27" class='pos'></contact-button><contact-button size="27" class='pos'></contact-button><contact-button size="27" class='pos'></contact-button><contact-button size="27" class='pos'></contact-button><contact-button size="27" class='pos'></contact-button><contact-button size="27" class='pos'></contact-button><contact-button size="27" class='pos'></contact-button><contact-button size="27" class='pos'></contact-button><contact-button size="27" class='pos'></contact-button><contact-button size="27" class='pos'></contact-button><contact-button size="27" class='pos'></contact-button><contact-button size="27" class='pos'></contact-button></view><image src='../../image/customer_service.png'></image><text>客服中心</text></view><navigator url='../news/news'><view class="wc"><image src='../../image/platform_consulting.png'></image><text>平台资讯</text></view></navigator><navigator url='../to_my/to_my'><view class="wc"><image src='../../image/platform_consulting.png'></image><text>关于我们</text></view></navigator><navigator url='my_dz/my_dz'><view class="wc"><image src='../../image/my_address.png'></image><text>我的地址</text></view></navigator><button wx:if="{{btn_val != '登录'}}" catchtap='register'>{{btn_val}}</button><button wx:else catchtap='register'>{{btn_val}}</button></view></view><view class="bg" bindtap='hideview' style='display:{{display}}'></view><!-- 主页 --><view class="home" style="{{translate}}"><image class='icon_user' bindtap='showview' src="../../image/icon_user.png"></image><image class='icon_cart' id='1' src="../../image/cart.png"></image><!-- <text> 运输机械</text> --><text> 我的机型</text><!-- 主页tab --><view class='home_tab' style='margin-top: 20rpx;'><view class='page_row'><block wx:for="{{k1}}" wx:key="index"><view class='title {{home_tab ==index?"on":""}}' catchtap='home_tab_click' data-id='{{item.id}}' data-on='{{index}}'>{{item.title}}</view></block></view></view></view>
</view>

var start_clientX;
var end_clientX;
const app = getApp()
const util = require("../../utils/util.js")
Page({data: {windowWidth: wx.getSystemInfoSync().windowWidth},// 滑动开始touchstart: function (e) {start_clientX = e.changedTouches[0].clientX},// 滑动结束touchend: function (e) {end_clientX = e.changedTouches[0].clientX;if (end_clientX - start_clientX > 120) {this.setData({display: "block",translate: 'transform: translateX(' + this.data.windowWidth * 0.7 + 'px);'})} else if (start_clientX - end_clientX > 0) {this.setData({display: "none",translate: ''})}},// 头像showview: function () {this.setData({display: "block",translate: 'transform: translateX(' + this.data.windowWidth * 0.7 + 'px);'})},// 遮拦hideview: function () {this.setData({display: "none",translate: '',})}
})
page{  height: 100%  
}  
/* 主页 */  
.home {  position: absolute;  width: 750rpx;  height: 100%;  background-color: white;  z-index: 1;  transition: All 0.4s ease;  -webkit-transition: All 0.4s ease;  
}  
.home .icon_user {  width: 68rpx;  height: 68rpx;  margin-left: 20rpx;  margin-top: 20rpx;  
}  
/* 遮罩层 */  
.bg {    display: none;    position: fixed;    top: 0%;    left: 70%;    width: 100%;    height: 100%;    background-color: black;    z-index: 1001;    -moz-opacity: 0.7;    opacity: 0.70;    transition:width 2s;  filter: alpha(opacity=70);    
}   /* 侧滑栏 */  
.page_tab {  height: 100%;  width: 750rpx;  position: fixed;  background-color: white;  z-index: 0;  
}  .page_tab_content .wc {  color: #000;  position: relative;  font-size: 32rpx;  padding: 20rpx 0 30rpx 20rpx;  
}  .page_tab_content button {  width: 280rpx;  background: #fb9817;  color: #fff;  position: relative;  right: 120rpx;  top: 150rpx;  height: 60rpx;  line-height: 60rpx;  
}  .page_tab_content image {  display: inline-block;  height: 40rpx;  width: 40rpx;  margin-right: 60rpx;  
}  .user_head {  width: 120rpx;  height: 120rpx;  border-radius: 50%;  text-align: center;  margin: 80rpx 80rpx 80rpx 205rpx;  
}  

相关文章:

1:1 人脸比对 开源_Hacktoberfest:我的开源门户

1:1 人脸比对 开源by Maribel Duran通过Maribel Duran Hacktoberfest&#xff1a;我的开源门户 (Hacktoberfest: My Gateway to Open Source) “Individually, we are one drop. Together, we are an ocean.”“就个人而言&#xff0c;我们只是一滴滴。 在一起&#xff0c;我们…

地图收敛心得170405

寻路算法大总结! 交换机生成树采用的是完全不同的D-V(distance vector)距离矢量算法,并不是很可靠. 并不是任意两点之间的最短路径,因为任意两点之间取最短路径可能有环路:总权更大 交换机STP不一定是最小生成树!!!举例论证 因为它只是所有交换机到根桥最短 贪心算法的味道 kru…

微信小程序游戏开发文档以及开发工具地址

微信小程序开发交流qq群 581478349 承接微信小程序开发。扫码加微信。 正文&#xff1a; 微信官方于 2017 - 12 - 28 日 开发微信小程序 开发小游戏 &#xff0c; 微信小程序小游戏开发官方文档的地址 https://mp.weixin.qq.com/debug/wxagame/dev/index.html?t20171228…

c#编译执行过程

创建一个简单的控制台程序&#xff0c;源码如下&#xff1a; using System; using System.Collections.Generic; using System.Linq; using System.Text;namespace csharpBuildProcess {class Program{static void Main(string[] args){for (int i 0; i < 100; i){if(i%20)…

渐进式web应用程序_渐进式Web应用程序简介

渐进式web应用程序Interested in learning JavaScript? Get my ebook at jshandbook.com有兴趣学习JavaScript吗&#xff1f; 在jshandbook.com上获取我的电子书 Progressive Web Apps (PWA) are the latest trend in mobile application development using web technologies.…

第二百二十节,jQuery EasyUI,Slider(滑动条)组件

jQuery EasyUI&#xff0c;Slider(滑动条)组件 学习要点&#xff1a; 1.加载方式 2.属性列表 3.事件列表 4.方法列表 本节课重点了解 EasyUI 中 Slider(滑动条)组件的使用方法&#xff0c;这个组件依赖于 Draggable(拖动)组件。 一&#xff0e;加载方式 class 加载方式 <…

适用于SharePoint 2013 的 CAML Desinger

适用于SharePoint 2013 的 CAML Desinger 分类&#xff1a; SharePoint2013-01-15 21:52 1877人阅读 评论(0) 收藏 举报CAMLDesingerSharePoint 2013代码生成适用于如果说Sql是信息管理系统的一等公民&#xff0c;那么SharePoint 系统中的一等公民就非CAML莫属了。 但是这个一等…

微信小程序 跑马灯效果完整代码附效果图

微信小程序开发交流qq群 173683895 承接微信小程序开发。扫码加微信。 正文&#xff1a; 一&#xff1a;功能介绍及讲解 实现的跑马灯&#xff08;跑马灯里面显示文章的title&#xff09;的效果&#xff0c;并在右侧有个查看文章的按钮&#xff0c;按钮绑定当前的跑马灯信…

热闹的聚会与尴尬的聚会_如何增加(和保存)您最喜欢的技术聚会

热闹的聚会与尴尬的聚会by Jen Weber詹韦伯(Jen Weber) 如何增加(和保存)您最喜欢的技术聚会 (How to Grow (and Save) Your Favorite Tech Meetup) Hey meetup facilitators, friends, and future leaders! Do you want more people to show up to your tech event? Or at l…

蓝桥杯-搭积木-java

/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2016, 广州科技贸易职业学院信息工程系学生 * All rights reserved. * 文件名称&#xff1a; 蓝桥杯赛题 * 作 者&#xff1a; 彭俊豪 * 完成日期&#xf…

微信小程序多张图片和表单一起上传,验证表单及进度条的实现完整代码

微信小程序开发交流qq群 173683895 承接微信小程序开发。扫码加微信。 正文&#xff1a; 效果图&#xff1a; 完整代码: <!--pages/register/register.wxml--> <view classtop> <view>注 册 须 知 : </view> </view> <view> <view …

Android, BaseAdapter 处理大数据量时的优化

Android优化 最常见的就是ListView, Gallery, GridView, ViewPager 的大数据优化 图片优化 访问网络的优化优化的原则&#xff1a; 数据延迟加载 分批加载 本地缓存数据优化 1).复用contentview 2).创建static class ViewHolder 3).分…

meetup_我在2017年举办Meetup中学到的知识以及为何对2018年充满期待。

meetupby Daniel Deutsch由Daniel Deutsch 我在2017年举办Meetup中学到的知识以及为何对2018年充满期待。 (What I’ve learned hosting Meetups in 2017 — and why I’m looking forward to 2018.) As 2017 comes to an end, it’s time to reflect on the non-profit work …

BASE64 编码和解码

依赖jar: import org.apache.commons.codec.binary.Base64; BASE64和其他相似的编码算法通常用于转换二进制数据为文本数据&#xff0c;其目的是为了简化存储或传输。更具体地说&#xff0c;BASE64算法主要用于转换二进 制数据为ASCII字符串格式。Java语言提供了一个非常好的BA…

Android开发常用属性

1、android string.xml 文字中间加入空格 android string.xml前后加空格的技巧 <string name"password">密 码</string> &#160 这个就代表着空格 2、文字单行显示 android layout布局文件中TextView、EditView单行显示和输入 <TextView androi…

JS计算起点坐标到终点坐标的驾车距离和驾车时间

微信小程序开发交流qq群 173683895 承接微信小程序开发。扫码加微信。 正文&#xff1a; 先上计算距离的简单demo&#xff1a; <!DOCTYPE html> <html><head><meta http-equiv"Content-Type" content"text/html; charsetutf-8"&…

css flexbox模型_5分钟内学习CSS Flexbox-初学者教程

css flexbox模型快速介绍流行的布局模块 (A quick introduction to the popular layout module) In this post, you’ll learn the basics of CSS Flexbox, which has become a must-have skill for web developers and designers in the last couple of years.在本文中&#x…

「linux网络管理」OSI模型

学习linux网络管理&#xff0c;笔记整理&#xff0c;促进记忆。 OSI&#xff08;开放系统互联模型&#xff09;包含七层&#xff0c;由应用层向物理层递进&#xff0c;分别有不同的协议和数据处理方式。 应用层--> 表示层--> 会话层--> 传输层--> 网络层--> 数据…

微信小程序下拉刷新和上拉加载的实现

微信小程序开发交流qq群 173683895 承接微信小程序开发。扫码加微信。 正文&#xff1a; 一&#xff1a; 下拉刷新 下拉刷新两个步骤就能实现。 1.在要实现下拉刷新的页面的json配置文件里面加上 "enablePullDownRefresh": true, //开启下拉刷新"backgro…

Spring整合Hibernate的步骤

为什么要整合Hibernate&#xff1f;1、使用Spring的IOC功能管理SessionFactory对象 LocalSessionFactoryBean2、使用Spring管理Session对象 HibernateTemplate3、使用Spring的功能实现声明式的事务管理 整合Hibernate的步骤&#xff1a;1、配置SessionFactory&#xff08;能够…

初创企业购买企业邮箱_支持#NetNeutrality =支持设计师及其创建的初创企业

初创企业购买企业邮箱by Lukasz Lysakowski卢卡斯吕萨科夫斯基(Lukasz Lysakowski) 支持#NetNeutrality 支持设计师及其创建的初创企业 (Supporting #NetNeutrality Supporting Designers and the Startups They Create) I believe in Net Neutrality, and I wrote a brief e…

【转】Android source build/envsetup.sh学习笔记

原文网址&#xff1a;http://blog.csdn.net/mliubing2532/article/details/7567164 如果你只需要修改某一个模块的内容&#xff0c;但是却每次都要执行make, 最后等待很长时间。使用模块编译&#xff0c;那只需要在你所在的模块的目录或者其子目录&#xff0c;执行mm&#xff0…

微信小程序之上传附件

微信小程序开发交流qq群 173683895 承接微信小程序开发。扫码加微信。 正文&#xff1a; 目前微信API开放上传图片&#xff0c;录音文件&#xff0c;视频文件&#xff0c;but 只能下载并打开附件&#xff0c;不能上传附件&#xff0c;以后会不会开放附件上传目前还不确定&…

微软在.NET官网上线.NET 架构指南频道

微软在Visual Studio 2017 正式发布的时候也上线了一个参考应用https://github.com/dotnet/eShopOnContainers , 最近微软给这个参考应用写了完善的文档&#xff0c;放在.NET官网的.NET架构频道https://www.microsoft.com/net/architecture。 整个.NET 架构按照4个部分展开&…

初学者css常见问题_5分钟内学习CSS Grid-初学者教程

初学者css常见问题Grid layouts are fundamental to the design of websites, and the CSS Grid module is the most powerful and easiest tool for creating it. I personally think it’s a lot better than for example Bootstrap (read why here).网格布局是网站设计的基础…

HBase保存的各个字段意义解释

// Author&#xff1a;xxx0624 HomePage&#xff1a;http://www.cnblogs.com/xxx0624/ // nutch2.2.1集成HBase0.94.25, 可以查询nutch的conf文件中的gora-hbase-mapping.xml查看原文件 <gora-orm><table name"webpage"><family name"p" ma…

AJAX基础篇

微信小程序开发交流qq群 581478349 承接微信小程序开发。扫码加微信。 正文&#xff1a; 整理一下AJAX相关的知识&#xff0c;帮助自己复习的同时希望还能够帮助到新加入前端阵营的小伙伴们。 1.AJAX是什么&#xff1f; AJAX 异步的JavaScript和XML 2.AJAX的作用&…

在运筹学中什么样的解决方案是最优的

问题: 1.在运筹学中什么样的解决方案是最优的 2.线性代数解决的是什么问题? 3.运筹学与线性代数的关系? 4.如何使用matlab 解决运筹学中的问题? 转载于:https://www.cnblogs.com/lwy1103/p/6676373.html

npm构建脚本_NPM脚本简介

npm构建脚本by Mohammed Ajmal Siddiqui由Mohammed Ajmal Siddiqui NPM脚本简介 (Introduction to NPM Scripts) NPM scripts are among my favorite features of NPM. They are simple. They reduce the need for tools. Hence they reduce the number of configuration file…

SQL 中循环、for循环、游标

我们使用SQL语句处理数据时&#xff0c;可能会碰到一些需要循环遍历某个表并对其进行相应的操作&#xff08;添加、修改、删除&#xff09;&#xff0c;这时我们就需要用到咱们在编程中常常用的for或foreach&#xff0c;但是在SQL中写循环往往显得那么吃力&#xff0c;翻遍网上…