太阳集团5493conlogo

  • 微博
  • 微信
  • QQ好友
  • QQ空间
  • 百度
详细内容

小程序手势 打开半屏新姿势-杭州网站建设为你呈现

时间:2023-07-29     作者:杭州网站建设【转载】   来自:微信派

监听touch事件容易出现卡顿,有没有更好的方法?


如果能够跟随用户的手势灵活拖拽页面,那就太酷了!


不要卡顿..


想更敏捷...


希望打开半屏页面能够跟随手势上下拉


有没有一种可能:页面可以跟随手势分段式定位呢?


想要更灵活的拖拽缩放方式?

又要更友好的页面交互效果?

还要更快捷的加载页面表现?

小程序手势组件立刻安排! 

手势组件现已应用到多个交互场景

例如优雅跳转功能页面的半屏场景

看看如何通过手势组件实现高效交互!

image.png

拖拽式交互

对比使用手势组件前后的操作,小程序半屏手势操作更加灵敏。用户仅需拖拽即可操作整个半屏页面,也能够与滚动组件无缝切换。

image.png


实现以上效果的原理主要是判断不同条件下由外层手势组件 pan-gesture-handler 还是内层滚动组件 scroll-view 响应的问题。



当用户在半屏区域向下滑动时,

  • 如果滚动条处于顶部,外层组件 pan-gesture-handler 响应拖动,半屏页面向下拖动至关闭

  • 如果滚动条不处于顶部,内层组件 scroll-view 响应滑动,半屏的内容列表向下滑动至最底端


image.png

滚动条处于顶部, pan-gesture-handler 响应拖动半屏页面整体向下拖动至关闭


滚动条不处于顶部, scroll-view 响应滑动半屏的内容列表向下滑动至最底端


当用户在半屏区域向上滑动时,

  • 如果半屏页面不完全打开,外层组件 pan-gesture-handler 响应拖动,半屏页面向上拖动至完全展示半屏

  • 如果半屏页面完全打开,内层组件 scroll-view 响应滑动,半屏的内容列表向上滑动至最顶端

image.png

半屏不完全打开时, pan-gesture-handler 响应拖动半屏页面整体向.上拖动至完全展示半屏


半屏完全打开时, scroll-view响应滑动半屏的内容列表向.上滑动至最顶端


想要实现半屏页面的灵活操作,仅需新增调用 pan-gesture-handler (用于拖动触发)以及 vertical-drag-gesture-handler (用于纵向滑动触发)2个 手势组件 即可快速实现。


编写 WXML 代码过程中,开发者主要使用 4 个核心属性,例如 on-gesture-event 等。编写 JS 代码过程中,开发者需要调用 worklet 函数,改变半屏的状态值,使得小程序实现类似原生动画的体验。



拖拽式交互如此丝滑,你可以通过下面方式应用最佳实践:

  • 通过微信开发者工具导入 代码片段(注意:使用 PC 端浏览器打开链接)

  • 点击 👉 查看完整代码 👈

















<pan-gesture-handler id="pan"  should-response-on-move="shouldPanResponse"   simultaneous-handlers="{{['scroll']}}"  on-gesture-event="handlePan">
   <vertical-drag-gesture-handler id="scroll"  native-view="scroll-view"  should-response-on-move="shouldScrollViewResponse"  simultaneous-handlers="{{['pan']}}">    <scroll-view type="list" scroll-y> ... scroll-view>  vertical-drag-gesture-handler>
pan-gesture-handler>



































// page.js// shared 创建的变量为共享变量,可在 UI 线程和 JS 线程间同步this.transY = wx.worklet.shared(1000)this.scrollTop = wx.worklet.shared(0)this.startPan = wx.worklet.shared(true)
// shouldPanResponse 和 shouldScrollViewResponse 用于 pan 手势和 scroll-view 滚动手势的协商shouldPanResponse() {  'worklet'  return this.startPan.value},shouldScrollViewResponse(pointerEvent) {  'worklet'  // transY > 0 说明 pan 手势在移动半屏,此时 scroll-view 滚动不应生效  if (this.transY.value > 0) return false  const scrollTop = this.scrollTop.value  const { deltaY } = pointerEvent  // deltaY > 0 是往上滚动,scrollTop <= 0 是滚动到顶部边界,此时 pan 开始生效,scroll-view 滚动不生效  const result = scrollTop <= 0 && deltaY > 0  this.startPan.value = result  return !result},
// pan 手势处理handlePan(gestureEvent) {  'worklet'  if (gestureEvent.state === GestureState.ACTIVE) {    const curPosition = this.transY.value    const destination = Math.max(0, curPosition + gestureEvent.deltaY)  // 改变半屏的位置    this.transY.value = destination  }
 // 其他手势状态的处理,如滚动结束时计算半屏处于打开还是关闭的状态}

  • 点击 👉 查看完整代码 👈

分段式交互

针对信息同时显示的需求,半屏页面是否有更好的交互?例如地图小程序开发者希望在展示多段导航信息的同时不影响用户查看当前定位。


分段式交互能够满足上述多信息显示的需求。用户通过自由拖拽和位置停留,实现分段式半屏效果。

image.png


分段式半屏的开发也很方便,在拖拽式交互的基础上增加当前半屏位置判断以响应分段式半屏还是内容列表。


既然分段式半屏如此方便,你可以通过下面方式快速应用:

  • 通过微信开发者工具导入 代码片段(注意:使用 PC 端浏览器打开链接)


页面转场交互

针对更丰富的半屏内容,例如小程序助手需要展开多位成员的申请详情,转场半屏交互能够实现更顺滑的交互效果,给予用户更自然、友好的体验。

image.png

通过 自定义路由 与手势组件的结合,开发者不仅能够实现以上页面转场交互的效果,还能够实现更多类原生的页面切换效果。后续的文章将会详细分享自定义路由的最佳实践,敬请关注!



小程序手势组件助力开发者更高效地实现类原生交互的体验,对用户操作更友好。以半屏页面为例的场景通过手势操作实现丝滑、灵敏的效果,实现更丰富的应用。


未来小程序团队还会分享更多手势操作的实用案例,欢迎关注 小程序示例,发现更多小程序好用功能!


如有更多接口相关问题,可点击 微信开放社区 发帖反馈,技术专员将为大家解答及进行深度交流。

太阳集团2138手机版
更多
  • 小游戏激励托管功能上线,助力开发者收益再

    小游戏激励托管功能上线,助力开发者收益再

    近期,微信广告上线全新的小游戏用户运营工具 ——激励托管功能,基于微信平台及腾讯广告引擎的智能预估能力,帮助开发者在激励式广告位实时计算并比较用户的分享与广告互

  • 品牌门户,加速转化:搜一搜超级品牌专区优

    品牌门户,加速转化:搜一搜超级品牌专区优

    自搜一搜超级品牌专区上线以来,众多品牌纷纷开启投放,打造微信生态内的品牌门户。搜一搜超级品牌专区,也以强大的生态连接力和丰富组件功能,助力品牌实现全链路转化提效

  • 公众号返佣商品能力升级,导入推文一键带货

    公众号返佣商品能力升级,导入推文一键带货

    为提升公众号流量主文章带货便捷性,公众号返佣商品升级产品能力,上线有导购文章和素材的商品,并支持一键导入推文;同时持续丰富商品库,以多元带货玩法带动流量主收益提

  • 视频号小任务上线:灵活变现,小而不凡-杭

    视频号小任务上线:灵活变现,小而不凡-杭

    微信广告上线面向视频号作者的现金任务撮合产品 ——视频号小任务(下称小任务)。小任务连接广告主推广与创作者变现需求,以视频号活动为载体,鼓励创作者投稿参与,并以

  • 全生命周期服务,助力小游戏开发者长效增收

    全生命周期服务,助力小游戏开发者长效增收

    近些年,小游戏行业快速发展,休闲游戏用户规模持续增长。与此同时,为满足小游戏开发者不同阶段的增长诉求,微信广告持续迭代产品能力,打造了完整的买量变现闭环服务解决

  • 视频号互选组件升级,一键直达落地页-杭州

    视频号互选组件升级,一键直达落地页-杭州

    近期,腾讯广告互选平台进行了多重产品升级,在投放前提供更丰富的选号数据,投放中支持视频号互选组件直达落地页,投放后新增合作计划记录一键下载功能,让广告主合作体验

  • “新”意满满,心动不已:2022 年微信

    “新”意满满,心动不已:2022 年微信

    今年七夕,微信广告开放全新广告场景,升级互动玩法,以满满“新”意,为品牌和用户牵起红线。选取部分案例,按品牌英文名称首字母排序了解七夕精选营销案例按品牌英文名称

  • 腾讯广告全流量通投能力升级,投放再提效-

    腾讯广告全流量通投能力升级,投放再提效-

    为了更好地帮助广告主提升投放效率和起量速度,腾讯广告投放平台贯彻投放一体化的演进趋势,不断整合腾讯生态中不同投放场景,最大程度为广告主的日常投放减负增效。现在,

  • 腾讯广告游戏行业暑期抢量攻略-杭州微信小

    腾讯广告游戏行业暑期抢量攻略-杭州微信小

    01腾讯广告全域库存攀升轻松抢占优质流量红利微信广告:重点流量呈亿级增长整体流量库存预计+10%朋友圈曝光量库存较往常水平有亿级增长暑期预估+7%小程序小游戏流

  • 报告!假期微信步数上万的人竟然有……杭州

    报告!假期微信步数上万的人竟然有……杭州

    假期“暴走”了么? 据“五一”微信运动数据显示:·近五分之一的用户日行万步以上;·微信运动用户总步数突破80000亿步。用双脚丈量时间,是这个假期的浪漫。川渝消

太阳集团5493con是一家专门致力于为企业提供全方位网站建设服务。年轻的我们带着梦想和对网络的热情走在互联网道路的前沿,一路走来,我们的努力和真诚得到了更多客户的认可。在未来的发在未来的发...

浙公网安备:33010602011153

seo seo