全网整合营销服务商

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

免费咨询热线: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 


相关文章: 宝塔新建站点为何无法访问?如何排查?  建站之星代理商如何保障技术支持与售后服务?  建站之星收费标准详解:套餐费用及年费价格表一览  网站视频制作书签怎么做,ie浏览器怎么将网站固定在书签工具栏?  如何快速完成中国万网建站详细流程?  招商网站制作流程,网站招商广告语?  保定网站制作方案定制,保定招聘的渠道有哪些?找工作的人一般都去哪里看招聘信息?  南京网站制作费用,南京远驱官方网站?  如何在建站之星网店版论坛获取技术支持?  网站制作服务平台,有什么网站可以发布本地服务信息?  网站专业制作公司,网站编辑是做什么的?好做吗?工作前景如何?  如何在云虚拟主机上快速搭建个人网站?  深圳网站制作平台,深圳市做网站好的公司有哪些?  如何用狗爹虚拟主机快速搭建网站?  ,柠檬视频怎样兑换vip?  如何在云服务器上快速搭建个人网站?  网站制作和推广的区别,想自己建立一个网站做推广,有什么快捷方法马上做好一个网站?  佛山企业网站制作公司有哪些,沟通100网上服务官网?  武清网站制作公司,天津武清个人营业执照注销查询系统网站?  网站制作模板下载什么软件,ppt模板免费下载网站?  广州商城建站系统开发成本与周期如何控制?  小说建站VPS选用指南:性能对比、配置优化与建站方案解析  c# F# 的 MailboxProcessor 和 C# 的 Actor 模型  宝塔建站教程:一键部署配置流程与SEO优化实战指南  如何快速搭建高效服务器建站系统?  合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?  如何注册花生壳免费域名并搭建个人网站?  建站主机选哪种环境更利于SEO优化?  定制建站方案优化指南:企业官网开发与建站费用解析  免费网站制作appp,免费制作app哪个平台好?  如何通过WDCP绑定主域名及创建子域名站点?  如何快速查询网站的真实建站时间?  建站主机SSH密钥生成步骤及常见问题解答?  建站org新手必看:2024最新搭建流程与模板选择技巧  如何在服务器上三步完成建站并提升流量?  h5在线制作网站电脑版下载,h5网页制作软件?  如何在阿里云高效完成企业建站全流程?  实现虚拟支付需哪些建站技术支撑?  如何选择高性价比服务器搭建个人网站?  *服务器网站为何频现安全漏洞?  关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)  南阳网站制作公司推荐,小学电子版试卷去哪里找资源好?  浅谈Javascript中的Label语句  如何选择靠谱的建站公司加盟品牌?  小米网站链接制作教程,请问miui新增网页链接调用服务有什么用啊?  网站设计制作公司地址,网站建设比较好的公司都有哪些?  css网站制作参考文献有哪些,易聊怎么注册?  赚钱网站制作软件,建一个网站怎样才能赚钱?是如何盈利的?  电脑免费海报制作网站推荐,招聘海报哪个网站多?  微课制作网站有哪些,微课网怎么进? 

您的项目需求

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