全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

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

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

微信小程序的左右滑动触屏事件,主要有三个事件: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>

第二步:在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; // 回复滑动事件
},

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


# 微信小程序左右滑动切换页面事件  # 小程序  # 滑动切换页面  # 微信小程序滑动页面  # 微信小程序MUI侧滑导航菜单示例(Popup弹出式  # 左侧滑动  # 右侧不动)  # 左侧不动  # 右侧滑动)  # 微信小程序左滑动显示菜单功能的实现  # 微信小程序图片横向左右滑动案例  # 微信小程序侧边栏滑动特效(左右滑动)  # 微信小程序左右滑动的实现代码  # 微信小程序 向左滑动删除功能的实现  # 微信小程序滚动Tab实现左右可滑动切换  # 微信小程序实现左侧滑动导航栏  # 微信小程序实现点餐小程序左侧滑动菜单  # 这三个  # 都有  # 最重要  # 计时器  # 希望能  # 可以看到  # 不超过  # 谢谢大家  # 第二步  # 绑定  # 结束时  # 没啥  # 过程中  # 主要有  # xml  # brush  # container  # lt  # view  # bindtouchend 


相关文章: 微信小程序制作网站有哪些,微信小程序需要做网站吗?  建站主机选购指南:核心配置优化与品牌推荐方案  新网站制作渠道有哪些,跪求一个无线渠道比较强的小说网站,我要发表小说?  如何用搬瓦工VPS快速搭建个人网站?  如何通过西部数码建站助手快速创建专业网站?  北京企业网站设计制作公司,北京铁路集团官方网站?  企业微网站怎么做,公司网站和公众号有什么区别?  广东企业建站网站优化与SEO营销核心策略指南  如何在阿里云购买域名并搭建网站?  如何通过IIS搭建网站并配置访问权限?  如何快速搭建支持数据库操作的智能建站平台?  如何在橙子建站上传落地页?操作指南详解  测试制作网站有哪些,测试性取向的权威测试或者网站?  建站中国官网:模板定制+SEO优化+建站流程一站式指南  北京建设网站制作公司,北京古代建筑博物馆预约官网?  建站主机SSH密钥生成步骤及常见问题解答?  建站之星代理商如何保障技术支持与售后服务?  北京网站制作网页,网站升级改版需要多久?  如何规划企业建站流程的关键步骤?  制作门户网站的参考文献在哪,小说网站怎么建立?  制作营销网站公司,淘特是干什么用的?  想学网站制作怎么学,建立一个网站要花费多少?  小自动建站系统:AI智能生成+拖拽模板,多端适配一键搭建  如何在搬瓦工VPS快速搭建网站?  官网网站制作腾讯审核要多久,联想路由器newifi官网  如何用西部建站助手快速创建专业网站?  宝华建站服务条款解析:五站合一功能与SEO优化设置指南  广州顶尖建站服务:企业官网建设与SEO优化一体化方案  如何用PHP快速搭建CMS系统?  如何快速配置高效服务器建站软件?  广州建站公司哪家好?十大优质服务商推荐  ,南京靠谱的征婚网站?  如何选择长沙网站建站模板?H5响应式与品牌定制哪个更优?  建站主机选购指南与交易推荐:核心配置解析  ppt制作免费网站有哪些,ppt模板免费下载网站?  如何通过虚拟主机快速搭建个人网站?  建站主机是否等同于虚拟主机?  建站之星后台密码遗忘如何找回?  详解jQuery停止动画——stop()方法的使用  网站制作员失业,怎样查看自己网站的注册者?  电影网站制作价格表,那些提供免费电影的网站,他们是怎么盈利的?  如何选择网络建站服务器?高效建站必看指南  如何在Windows环境下新建FTP站点并设置权限?  网站制作壁纸教程视频,电脑壁纸网站?  简易网站制作视频教程,使用记事本编写一个简单的网页html文件?  成都响应式网站开发,dw怎么把手机适应页面变成网页?  如何高效完成自助建站业务培训?  移动端手机网站制作软件,掌上时代,移动端网站的谷歌SEO该如何做?  无锡营销型网站制作公司,无锡网选车牌流程?  建站之星如何修改网站生成路径? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。