uniapp 微信小程序实现监听屏幕左右滑动实现tab标签切换效果

这篇具有很好参考价值的文章主要介绍了uniapp 微信小程序实现监听屏幕左右滑动实现tab标签切换效果。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

需求背景:

        实际的项目开发之中,有很多所谓的奇葩需求,当工程量相对较大的时候去更换组件会显得特别麻烦和费时。我这次的需求因为某些特殊原因,更换组件后也无法实现需要达到的效果,所以最后只能监听滑动事件,相信你看了我的代码也能轻松搞定!

         @touchstart="touchStart" @touchend="touchEnd" @touchcancel="touchCancel" 是主要的函数,写在你要监听的盒子上。

<view class="swiper-title" @touchstart="touchStart" @touchend="touchEnd" @touchcancel="touchCancel">{{item.name}}</view>
		data() {
			return {
				minOffset: 50, //最小偏移量,低于这个值不响应滑动处理
				minTime: 60, // 最小时间,单位:毫秒,低于这个值不响应滑动处理
				startX: 0, //开始时的X坐标
				startY: 0, //开始时的Y坐标
				startTime: 0, //开始时的毫秒数
				animationData: {},
			};
		},
touchStart(e) {
				// console.log('touchStart', e)
				this.startX = e.touches[0].pageX; // 获取触摸时的x坐标  
				this.startY = e.touches[0].pageY; // 获取触摸时的x坐标
				this.startTime = new Date().getTime(); //获取毫秒数
			},
			touchCancel: function(e) {
				this.startX = 0; //开始时的X坐标
				this.startY = 0; //开始时的Y坐标
				this.startTime = 0; //开始时的毫秒数
			},
			touchEnd: function(e) {
				// console.log('touchEnd', e)
				var endX = e.changedTouches[0].pageX;
				var endY = e.changedTouches[0].pageY;
				var touchTime = new Date().getTime() - this.startTime; //计算滑动时间
				//开始判断
				//1.判断时间是否符合
				if (touchTime >= this.minTime) {
					//2.判断偏移量:分X、Y
					var xOffset = endX - this.startX;
					var yOffset = endY - this.startY;
					// console.log('xOffset', xOffset)
					// console.log('yOffset', yOffset)
					//①条件1(偏移量x或者y要大于最小偏移量)
					//②条件2(可以判断出是左右滑动还是上下滑动)
					if (Math.abs(xOffset) >= Math.abs(yOffset) && Math.abs(xOffset) >= this.minOffset) {
						//左右滑动
						//③条件3(判断偏移量的正负)
						if (xOffset < 0) {
							// console.log('向左滑动 下一页')
							if(this.current + 1 < this.tabList.length) {
								this.current ++
								this.animation.translateX(-190).step()
							}else return
						} else {
							// console.log('向右滑动')
							if(this.current > 0) {
								this.current --
								if(this.current > 1) this.animation.translateX(190).step()
							}else return
						}
						this.change(this.current)
						this.animationData = this.animation.export()
					} else if (Math.abs(xOffset) < Math.abs(yOffset) && Math.abs(yOffset) >= this.minOffset) {
						//上下滑动
						//③条件3(判断偏移量的正负)
						if (yOffset < 0) {
							// console.log('向上滑动')
						} else {
							// console.log('向下滑动')
						}
					}
				} else {
					// console.log('滑动时间过短', touchTime)
				}
			},

        this.animation.translateX(190).step() 是动画效果和监听滑动无关,如果你想效果更好也可以像我一样在onLoad中使用uni.createAnimation()创建一个动画效果并使用它!文章来源地址https://www.toymoban.com/news/detail-635039.html

到了这里,关于uniapp 微信小程序实现监听屏幕左右滑动实现tab标签切换效果的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • Uni-app实现左右滑动页面内容切换(兼容微信小程序)

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档         前言         整体思路         一、HTML部分         二、Script部分         三、Style部分           (先声明哦我可不是偷懒,只是想学术借鉴一下)因为最近有在做左右滑动功能,

    2024年02月07日
    浏览(44)
  • uniApp监听左右滑动事件

    监听左右滑动事件的步骤 1. 添加需要监听滑动事件的元素 在你的页面中,添加需要监听滑动事件的元素。这可以是一个 view 、 swiper 或其他组件,取决于你的需求。例如: uniapp的滑动事件我也是感觉挺不错的,关键是能够实现局部滑动,这一点就非常的棒。 2. 编写事件处理

    2024年02月09日
    浏览(6)
  • 微信小程序 左右滑动方法

    微信小程序 左右滑动方法

    实现小程序左右滑动操作 wxml,在当前view层滑动操作 data数据

    2024年02月11日
    浏览(9)
  • 微信小程序———同一页面内左右滑动切换内容显示

    微信小程序———同一页面内左右滑动切换内容显示

    一、微信小程序事件  由于首先介绍一下微信小程序中的事件,可选择快速略过或者直接进去之后的重点内容 一、什么是事件 事件是视图层到逻辑层的通讯方式。 事件可以将用户的行为反馈到逻辑层进行处理。 事件可以绑定在组件上,当达到触发事件,就会执行逻辑层中对

    2024年02月03日
    浏览(29)
  • uniapp-微信小程序实现swiper左右滚动切换tab,上下滚动加载列表

    思路:左右滑动使用swiper,上下滑动用scroll-view,swiper改变时同时改变tab并更新列表 坑点: 1. swiper高度问题,导致滑动不到最底部和最顶部         需要手动计算,减去顶部高度和底部tabbar,并且需要同时设置padding-top和paddin-botton,否则列表显示不完整 2. 由于最开始的代码

    2024年02月04日
    浏览(31)
  • 微信小程序实现左右滑动触发内容及联动选项卡切换、Math、abs、findIndex、parseInt、String、push、createSelectorQuery、selectAll

    微信小程序实现左右滑动触发内容及联动选项卡切换、Math、abs、findIndex、parseInt、String、push、createSelectorQuery、selectAll

    在写原生微信小程序项目的时候,遇到左右滑动更新内容及联动选项卡切换的功能。于是就写了这篇文章,关于文章的 css 不在此文章中展示,使用了公共的自定义类名,所以通过类名大概就能推敲出 css 的属性及值。 页面分为三个模块,分别是顶部横向滚动选项卡,底部内

    2024年02月09日
    浏览(33)
  • uniapp小程序—实现下滑关闭抽屉(包含上下左右滑动)

    uniapp小程序—实现下滑关闭抽屉(包含上下左右滑动)

    操作:点击相应文字时从底部出现弹框,下滑超过一定速率,弹框回到下方隐藏; 这个组件有些多余的地方我没删,可以自行扩展。以下附带移动端的上下左右滑动,可以借鉴实现小程序的左右滑动

    2024年02月13日
    浏览(9)
  • 【uniapp小程序】使用swiper实现页面内部左右滑动的切换

    【uniapp小程序】使用swiper实现页面内部左右滑动的切换

    具体效果:手指在页面左右滑动会切换tab  背景:项目里原有代码复制,去除一些功能,只留一个外壳,目的是为了以后套套套 代码: 注意:scroll-view标签内实现上来加载、下来刷新。因为现在页面用不到,所以并没有保留

    2024年02月12日
    浏览(32)
  • 解决微信小程序在IOS端会上下左右滑动的问题

    解决微信小程序在IOS端会上下左右滑动的问题

    在开发微信小程序的时候发现在IOS端会出现上下左右都能滑动的情况,但是安卓端就不会出现这种情况,百度了一下好像IOS就是默认可以滑动,安卓默认不允许,本篇就这个问题解决一下,毕竟可以随意滑动视觉上不太美观 在外层的view设置overflow隐藏就好了,重新编译测试就

    2024年02月12日
    浏览(35)
  • 微信小程序——监听页面滑动(一)onPageScroll

    微信小程序——监听页面滑动(一)onPageScroll

    知识专栏 专栏链接 微信小程序专栏 https://blog.csdn.net/xsl_hr/category_12338067.html?spm=1001.2014.3001.5482 微信小程序——Git版本管理 https://blog.csdn.net/XSL_HR/article/details/130986889?spm=1001.2014.3001.5501 有关 微信小程序 的相关知识可以前往微信小程序官方文档查看了解!! 微信小程序官方文档

    2024年02月09日
    浏览(5)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包