• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >JavaScript > 微信小程序左右滑动切换页面详解及实例代码

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

作者:吕周坤 字体:[增加 减小] 来源:互联网 时间:2017-05-11

吕周坤通过本文主要向大家介绍了微信小程序案例详解,微信小程序详解,微信小程序开发详解,ds1302程序详解,rc522程序详解等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

微信小程序——左右滑动切换页面事件

微信小程序的左右滑动触屏事件,主要有三个事件:touchstart,touchmove,touchend。

这三个事件最重要的属性是pageX和pageY,表示X,Y坐标。

touchstart在触摸开始时触发事件;
touchend在触摸结束时触发事件;
touchmove触摸的过程中不断激发这个事件;

这三个事件都有一个timeStamp的属性,查看timeStamp属性,可以看到顺序是touchstart => touchmove=> touchmove => ··· =>touchmove =>touchend。

第一步:在wxml文件中绑定事件(需要左右滑动的界面)

<view class="container" bindtouchstart="touchStart" bindtouchmove="touchMove" bindtouchend="touchEnd">
 // do something
</view>
</div>

第二步:在js文件中处理左右滑动逻辑

var touchDot = 0;//触摸时的原点
var time = 0;// 时间记录,用于滑动时且时间小于1s则执行左右滑动
var interval = "";// 记录/清理 时间记录
var nth = 0;// 设置活动菜单的index
var nthMax = 5;//活动菜单的最大个数
var tmpFlag = true;// 判断左右华东超出菜单最大值时不再执行滑动事件

// 触摸开始事件
touchStart:function(e){ 
  touchDot = e.touches[0].pageX; // 获取触摸时的原点
  // 使用js计时器记录时间  
  interval = setInterval(function(){
    time++;
  },100); 
},
// 触摸移动事件
touchMove:function(e){ 
  var touchMove = e.touches[0].pageX;
  console.log("touchMove:"+touchMove+" touchDot:"+touchDot+" diff:"+(touchMove - touchDot));
  // 向左滑动  
  if(touchMove - touchDot <= -40 && time < 10){
    if(tmpFlag && nth < nthMax){ //每次移动中且滑动时不超过最大值 只执行一次
      var tmp = this.data.menu.map(function (arr, index) {
        tmpFlag = false;
        if(arr.active){ // 当前的状态更改
          nth = index;
          ++nth;
          arr.active = nth > nthMax ? true : false;
        }
        if(nth == index){ // 下一个的状态更改
          arr.active = true;
          name = arr.value;
        }
        return arr;
      })
      this.getNews(name); // 获取新闻列表
      this.setData({menu : tmp}); // 更新菜单
    }
  }
  // 向右滑动
  if(touchMove - touchDot >= 40 && time < 10){
    if(tmpFlag && nth > 0){
      nth = --nth < 0 ? 0 : nth;
      var tmp = this.data.menu.map(function (arr, index) {
        tmpFlag = false;
        arr.active = false;
        // 上一个的状态更改
        if(nth == index){
          arr.active = true;
          name = arr.value;
        }
        return arr;
      })
      this.getNews(name); // 获取新闻列表
      this.setData({menu : tmp}); // 更新菜单
    }
  }
  // touchDot = touchMove; //每移动一次把上一次的点作为原点(好像没啥用)
},
 // 触摸结束事件
touchEnd:function(e){
  clearInterval(interval); // 清除setInterval
  time = 0;
  tmpFlag = true; // 回复滑动事件
},

</div>

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 微信小程序左右滑动切换页面详解及实例代码
  • 微信小程序 动态的设置图片的高度和宽度详解及实例代码
  • 微信小程序开发之相册选择和拍照详解及实例代码
  • 微信小程序中实现一对多发消息详解及实例代码
  • 微信小程序 详解页面跳转与返回并回传数据
  • 微信小程序的动画效果详解
  • 详解微信小程序开发之城市选择器 城市切换
  • 微信小程序 详解下拉加载与上拉刷新实现方法
  • 微信小程序 本地存储及登录页面处理实例详解
  • 微信小程序开发(一) 微信登录流程详解

相关文章

  • 2017-05-11完美实现js选项卡切换效果(一)
  • 2017-05-11BootStrap与Select2使用小结
  • 2017-05-11js实现简单的选项卡效果
  • 2017-05-11JS触摸事件、手势事件详解
  • 2017-05-11vue 和vue-touch 实现移动端左右导航效果(仿京东移动站导航)
  • 2017-05-11jquery插件ContextMenu设置右键菜单
  • 2017-05-11$.browser.msie 为空或不是对象问题的多种解决方法
  • 2017-05-11bootstrap table 数据表格行内修改的实现代码
  • 2017-05-11微信JS-SDK选取手机照片上传功能
  • 2017-05-11jQuery实现鼠标滑过预览图片大图效果的方法

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 微信小程序中的onLoad详解及简单实例
    • js实现弹窗暗层效果
    • JS模拟实现ECMAScript5新增的数组方法
    • 利用Angular+Angular-Ui实现分页(代码加简单)
    • js将字符串中的每一个单词的首字母变为大写其余均为小写
    • JavaScript原生节点操作小结
    • 从零开始学习Node.js系列教程六:EventEmitter发送和接收事件的方法示例
    • jQuery.cookie.js使用方法及相关参数解释
    • 微信小程序 动态绑定数据及动态事件处理
    • nodejs根据ip数组在百度地图中进行定位

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有