微信小程序实现页面左右滑动


Posted in Javascript onNovember 16, 2020

本文实例为大家分享了微信小程序实现页面左右滑动的具体代码,供大家参考,具体内容如下

效果:

微信小程序实现页面左右滑动

wxml文件

<view bindtouchmove="tap_drag" bindtouchend="tap_end" bindtouchstart="tap_start" class="page-top {{open ? ['c-state','cover'] : ''}} ">
  <view bindtap="tap_ch" style="{{open ? 'color: red;font-weight: bold;' : ''}}">{{open ? '手指左滑' : '手指右滑'}}</view>
  <view class='content'> 
   <text>我是内容我是内容!</text>
  </view>
</view>

js文件

data: {
open: false,
// mark 是指原点x轴坐标
mark: 0,
// newmark 是指移动的最新点的x轴坐标 
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事件
  // 把手指触摸屏幕的那一个点的 x 轴坐标赋值给 mark 和 newmark
  this.data.mark = this.data.newmark = e.touches[0].pageX;
 },
 
 tap_drag: function(e) {
  // touchmove事件
  this.data.newmark = e.touches[0].pageX;
  
  // 手指从左向右移动
  if (this.data.mark < this.data.newmark) {
   this.istoright = true;
  }
  
  // 手指从右向左移动
  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;
  // 通过改变 opne 的值,让主页加上滑动的样式
  if (this.istoright) {
   this.setData({
    open: true
   });
  } else {
   this.setData({
    open: false
   });
  }
 },

wxss文件

/* 全局样式 */
page, .page {
 height: 100%;
 font-family: 'PingFang SC',
     'Helvetica Neue',
     Helvetica,
     'Droid Sans Fallback',
     'Microsoft Yachei',
     sans-serif;
} 
/* 侧边栏样式 */
.page-slidebar {
 height: 100%;
 width: 750rpx;
 position: fixed;
 background-color:white;
 z-index: 0;
}
 
/* 控制侧边栏的内容距离顶部的距离 */
.page-content {
 padding-top: 60rpx;
}
 
/* 侧边栏内容的 css 样式 */
.wc {
 color:black;
 padding: 30rpx 0 30rpx 150rpx;
 border-bottom: 1px solid #eee; 
}
 
/* 当屏幕向左滑动,出现侧边栏的时候,主页的动画样式 */
/* scale:取值范围 0~1 ,表示屏幕大小是原来的百分之几,可以自己修改成 0.8 试下*/
/* translate(60%,0%) 表示向左滑动的时候,侧边栏占用平时的宽度为 60% */
/* translate(-60%,0%) 表示向右滑动的时候,侧边栏占用平时的宽度为 60% */
.c-state {
 transform: rotate(0deg) scale(1) translate(60%, 0%);
 -webkit-transform: rotate(0deg) scale(1) translate(60%, 0%);
}
 
/* 主页样式 */
.page-top {
 height: 100%;
 position: fixed;
 width: 750rpx;
 background-color:white;
 z-index: 0;
 transition: All 0.4s ease;
 -webkit-transition: All 0.4s ease;
}
/* 左上角图标的样式 */
.page-top image {
 position: absolute;
 width: 68rpx;
 height: 68rpx;
 left: 20rpx;
 top: 20rpx;
}
 
/* 遮盖层样式 */
.cover{
 width: 100%;
 height: 100%;
 background-color:gray;
 opacity: 0.5;
 z-index: 9000;
}
 
.content{
 margin-top: 100rpx; 
}

为大家推荐现在关注度比较高的微信小程序教程一篇:《微信小程序开发教程》小编为大家精心整理的,希望喜欢。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jQuery插件实现屏蔽单个元素使用户无法点击
Apr 12 Javascript
setInterval()和setTimeout()的用法和区别示例介绍
Nov 17 Javascript
讨论html与javascript在浏览器中的加载顺序问题
Nov 27 Javascript
JavaScript实现向setTimeout执行代码传递参数的方法
Apr 16 Javascript
js中对函数设置默认参数值的3种方法
Oct 23 Javascript
jQuery Ajax 实例代码 ($.ajax、$.post、$.get)
Apr 29 Javascript
基于Bootstrap+jQuery.validate实现表单验证
May 30 Javascript
详细探究ES6之Proxy代理
Jul 22 Javascript
Bootstrap里的文件分别代表什么意思及其引用方法
May 01 Javascript
vue 集成 vis-network 实现网络拓扑图的方法
Aug 07 Javascript
vue-admin-template配置快捷导航的代码(标签导航栏)
Sep 04 Javascript
详解实现vue的数据响应式原理
Jan 20 Vue.js
Vertx基于EventBus发送接受自定义对象
Nov 16 #Javascript
vue+echarts+datav大屏数据展示及实现中国地图省市县下钻功能
Nov 16 #Javascript
angular8.5集成TinyMce5的使用和详细配置(推荐)
Nov 16 #Javascript
js实现纯前端压缩图片
Nov 16 #Javascript
Vue基于localStorage存储信息代码实例
Nov 16 #Javascript
微信小程序自定义底部弹出框动画
Nov 18 #Javascript
vue 封装面包屑组件教程
Nov 16 #Javascript
You might like
三种php连接access数据库方法
2013/11/11 PHP
Yii2针对指定url的生成及图片等的引入方法小结
2016/07/18 PHP
PHP Mysqli 常用代码集合
2016/11/12 PHP
thinkPHP统计排行与分页显示功能示例
2016/12/02 PHP
PHP封装函数实现生成随机的字符串验证码
2017/01/24 PHP
php在windows环境下获得cpu内存实时使用率(推荐)
2018/02/08 PHP
在JQuery dialog里的服务器控件 事件失效问题
2010/12/08 Javascript
javascript实现div的拖动并调整大小类似qq空间个性编辑模块
2012/12/12 Javascript
js汉字转拼音实现代码
2013/02/06 Javascript
JS检测图片大小的实例
2013/08/21 Javascript
js 获取页面高度和宽度兼容 ie firefox chrome等
2014/05/14 Javascript
封装好的js判断操作系统与浏览器代码分享
2015/01/09 Javascript
jQuery实现的支持IE的html滑动条
2015/03/16 Javascript
thinkphp实现无限分类(使用递归)
2015/12/19 Javascript
JavaScript原型及原型链终极详解
2016/01/04 Javascript
Knockoutjs 学习系列(二)花式捆绑
2016/06/07 Javascript
使用vue.js编写蓝色拼图小游戏
2017/03/17 Javascript
利用node.js+mongodb如何搭建一个简单登录注册的功能详解
2017/07/30 Javascript
浅谈node中的exports与module.exports的关系
2017/08/01 Javascript
使用Fullpage插件快速开发整屏翻页的页面
2017/09/13 Javascript
Angular异步变同步处理方法
2018/08/13 Javascript
JavaScript常见鼠标事件与用法分析
2019/01/03 Javascript
Node.js如何对SQLite的async/await封装详解
2019/02/14 Javascript
Vue表单之v-model绑定下拉列表功能
2019/05/14 Javascript
超详细的5个Shell脚本实例分享(值得收藏)
2019/08/15 Javascript
VsCode与Node.js知识点详解
2019/09/05 Javascript
Vue.js组件通信之自定义事件详解
2019/10/19 Javascript
JavaScript闭包相关知识解析
2019/10/19 Javascript
[48:32]VGJ.T vs Fnatic 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
windows下cx_Freeze生成Python可执行程序的详细步骤
2018/10/09 Python
Python脚本按照当前日期创建多级目录
2019/03/01 Python
python多环境切换及pyenv使用过程详解
2019/09/27 Python
Conforama西班牙:您的家具、装饰和电器商店
2020/02/21 全球购物
物业管理应届生求职信
2013/10/28 职场文书
思想工作总结范文
2015/08/12 职场文书
python读取mat文件生成h5文件的实现
2022/07/15 Python