小程序Swiper做Tab切换,带tab切换动画

小程序Swiper做Tab切换,带tab切换动画,第1张

微信小程序Swiper做Tab切换,带tab切换动画

小程序中我们做tab切换一般情况下可以做点击切换,但是有Swiper组件,其实我们也可以做滑动切换

监听Swiper的bindchange,我们就可以在切换时改变tab的选装状态达到切换的目的。

但是这样的方式tab的切换方式是跳转式的,体验不是很好。于是就有了这个demo,我们一步步优化切换体验。

首先:利用flex布局,做出tab区域,如果tab选项卡很多可以使用Scroll-view;一般的跳转式的tab用boder-bottom实现就好,这里我们加了一个“navbar-slider”,加上translateX动画实现平移切换。

然后:计算出每个tabItem的宽度,和每个item距离0坐标的距离;下中50是slider的宽度,对应上面“width:50px;”

关联:1、监听item点击,切换swiper;2、监听swiper切换改变slider位置和tab显示

效果展示如下:

现在我们已经实现了,Swiper和tab的带动画联动,但是我们可以发现,我们的切换动画是在切换之后进行的,我们这里还可以继续优化。

swiper在切换时可以监听bindtransition,swiper-item 的位置发生改变时会触发 transition 事件,eventdetail = {dx: dx, dy: dy},dx则是平移的偏移量,我们可以通过这个监听来实时设置slider的位置。

切换后校正slider的位置,这里我们不能使用bindchange来校正,因为bindchange在切换时手指释放的时候就调用了,我们这里使用bindanimationfinish回调来校正(动画结束时会触发 animationfinish 事件,eventdetail 同上)

最终:展示如下

在小程序开发文档中明确说明了最好不要频繁调用setData,我们最后这种方式就会频繁的调用,所以这里其实只是提供这种思路,但是工程中并不建议这么使用

小程序开发者文档

SwiperTab

官方有专门的开放接口

touchstart 手指触摸动作开始

touchmove 手指触摸后移动

touchcancel 手指触摸动作被打断,如来电提醒,d窗

touchend 手指触摸动作结束

tap 手指触摸后马上离开

longtap 手指触摸后,超过350ms再离开

请根据自己实际情况进行选择。

wxml 添加 Swiper 父级 ,里面包裹 Swiper-item 。把页面内容都用<swiper></swiper>包起来,内部再包裹<swiper-item></swiper-item>里面

js中添加 跳转事件

从人性化角度考虑,这种刷新后跳到开头的行为是符合大多数人的习惯的。如果你一定要回到刷新时的原位置,可以先利用Page的onPageScroll事件记录当前屏幕的scrollTop数值,在刷新完毕后再利用wxpageScrollTo方法返回所记录的位置。

以上就是关于小程序Swiper做Tab切换,带tab切换动画全部的内容,包括:小程序Swiper做Tab切换,带tab切换动画、小程序文字选中手指离开时用什么事件、微信小程序swiper滑动切换等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/zz/9504801.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-29
下一篇2023-04-29

发表评论

登录后才能评论

评论列表(0条)

    保存