微信小程序提供了页面的上下滚动的事件,在页面的js文件中,

page({
onPageScroll(e) {
console.log(e.scrollTop)
}
})
但是不是滑动事件,滑动事件需要自己加在view上,

<view bindtouchstart='touchStart' bindtouchend="touchEnd"></view>
如果不让滑动事件冒泡的话.将bind改为catch就好了

<view catchtouchstart='touchStart' catchtouchend="touchEnd"></view>
在js文件中添加绑定的事件处理函数,在touchStart中,将触摸开始获取到的x和y值存储到data里,例如touch.x和touch.y

touchStart(e) {
// console.log(e)
this.setData({
"touch.x": e.changedTouches[0].clientX,
"touch.y": e.changedTouches[0].clientY
});
}
在touchEnd中,也就是手指离开屏幕的事件处理函数中,首先获取到此时的x和y值,

touchEnd(e) {
let x = e.changedTouches[0].clientX;
let y = e.changedTouches[0].clientY;
}
然后再写一个判断方向的简单处理函数,建议将此方法写在utils工具库中,

/***

  • 判断用户滑动
  • 左滑还是右滑
    */
    const getTouchData = (endX, endY, startX, startY)=> {
    let turn = "";
    if (endX - startX > 50 && Math.abs(endY - startY) < 50) { //右滑
    turn = "right";
    } else if (endX - startX < -50 && Math.abs(endY - startY) < 50) { //左滑
    turn = "left";
    }
    return turn;
    }
    在此方法中,传入四个参数,分别是手指离开的x和y值,分别为endX和endY,手指按下的x和y值,分别为startX和startY,判断离开的x减去开始的x是否大于50px,也就是手指向左滑动超过50px,就是想左滑,如果小于-50则是向右滑,

但是如果此时用户在向下滑或者向上滑的过程中也有向左滑和向右滑的偏移,此时判断用户有向左滑和向右滑就有点不准确了,所以如果满足上述条件并且用户上滑或者下滑的距离不超过50px才判定用户确实是在左右滑动

有些用户使用大拇指滑动的时候喜欢斜着滑,此时上下和左右都有滑动,至于该判断用户是向左右还是向上下,可以用斜率来判断,或者引入touch.js,在这就不写了,这个就作为一种很简单轻量的解决办法.

回到顶部

onPageScroll: function (e) { console.log(e.scrollTop) if (e.scrollTop>300) { this.setData({ showTop: false }) } else { this.setData({ showTop: true }) } }, goTop: function () { wx.pageScrollTo({ scrollTop: 0, duration: 300 }) }

转载于:https://blog.51cto.com/13507333/2287275

微信小程序页面左右滑动事件+回到顶部相关推荐

  1. 微信小程序页面跳转后回到顶部

    做小程序时经常遇到页面比较长的情况,经过跳转后,又该如何回到页面顶部呢? 主要用到scroll-view 组件中 scroll-top设置页面顶部距离 代码有以下功能:点击demo页面底部的跳转至de ...

  2. 微信小程序之触摸滑动事件案例+Slideview组件【手动左滑删除效果】

    前言: 现在很多程序上都有左滑删除的效果,其实实现很简单,今天我们主要来记录一下小程序的左滑删除的实现过程. 效果图: 实现效果: 当我们在该条记录上进行左滑操作时,整条记录跟着向左移动,同时右侧的删 ...

  3. 微信小程序 界面从右边滑出_微信小程序页面溢出左右滑动问题

    微信小程序 页面中view设置width:100%之后,页面右边会多出一块白区域,并且可以左右滑动,解决方法是给这个view加一个box-sizing:border-box; 欢迎使用Markdown ...

  4. 微信小程序页面上下滚动、左右滑动(二)

    系列文章目录 微信小程序页面上下滚动.左右滑动(一) 文章目录 系列文章目录 前言 项目结构 解决问题1 1.pretest页面 2.test页面 解决问题2 总结 参考 前言 在上一篇文章,讲解了再 ...

  5. 微信小程序页面溢出左右滑动问题

    微信小程序 页面中view设置width:100%之后,页面右边会多出一块白区域,并且可以左右滑动,解决方法是给这个view加一个box-sizing:border-box; 欢迎使用Markdown ...

  6. 微信小程序页面间通信的5种方式

    微信小程序页面间通的5种方式 PageModel(页面模型)对小程序而言是很重要的一个概念,从app.json中也可以看到,小程序就是由一个个页面组成的. 如上图,这是一个常见结构的小程序:首页是一个 ...

  7. 微信小程序页面竖向滚动逻辑

    微信小程序页面竖向滚动逻辑 1.实现下面类似的数组 注:下面这个生成的数组最好是整数,滑动的时候会失去精度的,要不然你永远会差一点,让你崩溃的.而且你永远不知道差在哪里. this.leftScrol ...

  8. 微信小程序实现左侧滑动导航栏

    微信小程序实现左侧滑动导航栏 1.左侧滑动导航栏图如下 2.这是我们左侧滚动栏的代码 wxml <view class='under_line'></view><view ...

  9. 微信小程序 - 实现左滑动删除功能

    微信小程序 - 实现左滑动删除功能 效果图: 实现过程: 一.wxml布局 这里我是先用了一个大盒子包裹小盒子,然后小盒子里面进行左右布局(左边为内容部分,右边为删除按钮)的方式实现的 <vie ...

最新文章

  1. 数据库 mysql 表设计,数据删除
  2. WebGIS中基于AGS的画圆查询简析以及通过Polygon来构造圆的算法
  3. Apache Flink 零基础入门(十一)Flink transformation
  4. sigmoid函数的数值稳定性
  5. 实现连麦_直播课程系统如何实现互动连麦效果?
  6. 适合pythonpandas的软件_Pandas的10大惊人应用-哪个行业领域正在使用Python Pandas?...
  7. 多线程条件通行工具——Semaphore
  8. Unity超基础学习笔记(一)
  9. 视频直接变漫画!GAN又有了新玩法 | Demo+代码+论文
  10. android java service_[Java教程]Android四大组件之Service浅见
  11. spring之httpclient doget请求
  12. xtile 下载_Stata: gen 命令中的 group() 函数的潜在风险
  13. 最简单的Python爬虫案例,看得懂说明你已入门,附赠教程
  14. 三类保留地址(私有地址)
  15. 联想笔记本电脑E570永久禁用触摸板
  16. ​LeetCode刷题实战507:完美数
  17. Vite图片压缩(vite-plugin-imagemin) imagemin error: XXXX解决办法
  18. 像素、英寸、厘米之间的换算关系
  19. leach c matlab,其实是MATLAB的LEACH协议
  20. 购买邮箱需要注意什么?教你发件邮箱购买流程

热门文章

  1. 信息系统项目管理师-信息化与信息系统考点笔记(下)
  2. Nodejs模块、自定义模块、CommonJs的概念和使用
  3. Winform中通过NPOI导出Excel时通过ICellStyle和IDataFormat格式化日期显示格式
  4. Winform中实现图片格式转换(附代码下载)
  5. Java实现将list数据取出并加入分隔符拼接,转换成String
  6. SpringBoot中的Profile配置的使用
  7. django 获取环境变量_Django 安装和配置环境变量
  8. websocket学习和群聊实现
  9. 工作的未来:敏捷人士瑞典大会上午议程回顾
  10. createSQLQuery的addEntity跟setResultTransformer方法