媲美原生体验,Skyline 轻松实现!

微信开发者

发布于:2023-11-01

摘要:应用 Skyline 渲染引擎,小程序轻松实现贴近原生的交互体验!

丝滑流畅的小程序交互效果能够提升用户使用满意度,进而提升留存与转化。然而实现这样贴近原生的交互效果并非易事。开发者需要投入大量的时间和经验进行兼容适配,无形中增加了开发难度。


餐饮小程序 NONZERO COFFEE 应用 Skyline 渲染引擎,轻松实现贴近原生的交互效果,让用户体验到更丝滑流畅的点餐过程。一起来看看怎样实现吧!



worklet 动画:元素切换更丝滑

当页面滚动时,我们希望小程序能够根据页面不同的滚动状态或位置,灵活切换某些元素。以往使用 wx:if 进行开发,动画效果显示非常生硬。现在应用 worklet 动画 即可实现流畅效果。

例如当用户上滑超过点单、外卖、商城等主要菜单栏时,主要菜单栏自动吸顶。即使用户到达下方仍能够快速点击主要菜单栏,无需返回到最上方,优化用户使用体验。

👉 点击查看代码


onLoad(options) {        // 背景图片的高度和缩放        this.bgimgTop = shared(0)        this.bgimgSca = shared(1)        // 顶部点单栏透明度        this.topfunOp = shared(0)    },   onReady() {        // 背景图片动画监听       this.applyAnimatedStyle('.bgimg', () => {          'worklet'           return {top: `${this.bgimgTop.value}px`,transform:`scale(${this.bgimgSca.value},${this.bgimgSca.value})`}       })       // 顶部点单栏动画监听      this.applyAnimatedStyle('.fixtopview', () => {          'worklet'          return {opacity: `${this.topfunOp.value}`}      })

   },          scrolling(e){              "worklet"              let scrollTop = e.detail.scrollTop              if(scrollTop <= 0){                        //向下滚动            this.bgimgTop.value = 0            this.bgimgSca.value = 1 +  (-scrollTop  /  800)            this.topfunOp.value = 0              }else{                       //向上滑动            this.bgimgTop.value = - scrollTop            this.bgimgSca.value =   1            let opTemp = (scrollTop / 200)            this.topfunOp.value = opTemp >= 1 ? 1 : opTemp              }          },


手势系统:元素切换更同步

为了提供更好的交互体验,开发者可以结合 手势系统 精细化地监听 scroll-view 组件,实现手势与元素切换的同步效果。

例如在滑动点餐页面过程中,小程序根据用户手势的上滑位置判定搜索框吸顶、门店信息吸顶等操作,让用户轻轻一拉一滑即可轻松切换不同模块。

👉 点击查看代码


<!-- wxml-->
<!-- 背景图--><image src="{{pageBg}}" class=" bgimg" ></image><!-- 菜单栏--><view class=" fixtopview ">这里是置顶的点单菜单栏</view>  <!-- 首先使用scroll-view的worklet:onscrollupdate事件监听页面滚动-->
<scroll-view worklet:onscrollupdate="scrolling" type="list" scroll-y="{{true}}" show-scrollbar="{{false}}">  <view slot="refresher">  这里是页面内容和  </view></scroll-view>


自定义路由:页面交互更优雅

小程序页面切换通常是左右切换的单一方式,体验流程有明显的阻滞感。现在使用 自定义路由 即可实现页面的多元交互,例如页面下沉、半屏、底部弹起等方式,优雅丝滑地实现页面切换。

例如在用户选择单品时,小程序以半屏形式从底部弹出,页面切换更流畅;完成点单后,用户只需轻轻一拉即可关闭半屏,整个流程更优雅、更贴近原生。

👉 点击查看代码


const ShopSearchRouteBuilder = (customRouteContext) => {    console.info('skyline: half page route build')    /**     * 1. 手势拖动时采用原始值     * 2. 页面进入时采用 curve 曲线生成的值     * 3. 页面返回时采用 reverseCurve 生成的值     */    const handlePrimaryAnimation = () => {        'worklet'        return {
       }    }    return {        opaque: false,        handlePrimaryAnimation,        transitionDuration: 10,        reverseTransitionDuration: 10,        barrierDismissible:true,        canTransitionTo: false,        canTransitionFrom: false,    }}


NONZERO COFFEE 小程序灵活应用 Skyline 渲染引擎 的各项新能力,实现贴近原生的交互体验,提升用户满意度,促进用户留存与转化。


如有 Skyline 渲染引擎相关问题,可在 Skyline 社区专区 发帖互动,技术专员将为大家解答及进行深度交流。


原创|武汉杰跃信息技术有限公司负责人 &  NONZERO COFFEE 小程序 开发者 胡杰

本文内容来源于公众号: 微信开发者 ,请扫码查看原文。

点此可查看原文