微信小程序左右滑动切换页面详解及实例代码
发布时间 - 2026-01-10 23:20:26 点击率:次微信小程序——左右滑动切换页面事件

微信小程序的左右滑动触屏事件,主要有三个事件: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
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Laravel怎么为数据库表字段添加索引以优化查询
Laravel集合Collection怎么用_Laravel集合常用函数详解
Swift中循环语句中的转移语句 break 和 continue
Laravel如何记录日志_Laravel Logging系统配置与自定义日志通道
WordPress 子目录安装中正确处理脚本路径的完整指南
制作企业网站建设方案,怎样建设一个公司网站?
php在windows下怎么调试_phpwindows环境调试操作说明【操作】
中国移动官方网站首页入口 中国移动官网网页登录
Laravel Eloquent:优雅地将关联模型字段扁平化到主模型中
中山网站推广排名,中山信息港登录入口?
Win11怎么关闭透明效果_Windows11辅助功能视觉效果设置
瓜子二手车官方网站在线入口 瓜子二手车网页版官网通道入口
国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?
Midjourney怎么调整光影效果_Midjourney光影调整方法【指南】
JS碰撞运动实现方法详解
太平洋网站制作公司,网络用语太平洋是什么意思?
如何用VPS主机快速搭建个人网站?
用v-html解决Vue.js渲染中html标签不被解析的问题
Laravel路由怎么定义_Laravel核心路由系统完全入门指南
实例解析Array和String方法
西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?
怎么制作一个起泡网,水泡粪全漏粪育肥舍冬季氨气超过25ppm,可以有哪些措施降低舍内氨气水平?
高防网站服务器:DDoS防御与BGP线路的AI智能防护方案
如何快速搭建高效简练网站?
奇安信“盘古石”团队突破 iOS 26.1 提权
Python自动化办公教程_ExcelWordPDF批量处理案例
手机怎么制作网站教程步骤,手机怎么做自己的网页链接?
Laravel如何创建和注册中间件_Laravel中间件编写与应用流程
香港服务器网站生成指南:免费资源整合与高速稳定配置方案
打造顶配客厅影院,这份100寸电视推荐名单请查收
如何用AWS免费套餐快速搭建高效网站?
微博html5版本怎么弄发超话_超话进入入口及发帖格式要求【教程】
如何在建站宝盒中设置产品搜索功能?
java获取注册ip实例
南京网站制作费用,南京远驱官方网站?
bootstrap日历插件datetimepicker使用方法
Laravel如何实现图片防盗链功能_Laravel中间件验证Referer来源请求【方案】
C++时间戳转换成日期时间的步骤和示例代码
Laravel如何处理文件下载请求?(Response示例)
Laravel事件监听器怎么写_Laravel Event和Listener使用教程
🚀拖拽式CMS建站能否实现高效与个性化并存?
Laravel如何获取当前登录用户信息_Laravel Auth门面使用与Session用户读取【技巧】
Android利用动画实现背景逐渐变暗
谷歌浏览器如何更改浏览器主题 Google Chrome主题设置教程
如何快速搭建高效可靠的建站解决方案?
如何快速启动建站代理加盟业务?
JavaScript 输出显示内容(document.write、alert、innerHTML、console.log)
个人摄影网站制作流程,摄影爱好者都去什么网站?
Laravel如何生成PDF或Excel文件_Laravel文档导出工具与使用教程
Laravel如何使用Service Provider注册服务_Laravel服务提供者配置与加载

