高级教程|小程序开发指南进阶篇(二)

高级教程|小程序开发指南进阶篇(一) 

四. 获取界面上节点信息

在开发的过程中,如需查询某个节点的当前位置、属性、样式等信息,您可以使用 ty.createSelectorQuery

返回值是一个 SelectorQuery 对象实例。

示例代码

const query = ty.createSelectorQuery();
          query.select("#the-id").boundingClientRect();
          query.selectViewport().scrollOffset();
          query.exec(function (res) {
          res[0].top; // #the-id 节点的上边界坐标
          res[1].scrollTop; // 显示区域的竖直滚动位置
          });
        

获取节点的相交状态

ty.createIntersectionObserver API 可用于监听两个或多个组件节点在布局位置上的相交状态。这一组 API 常常可以用于推断某些节点是否展示给用户 以及 有多大比例的区域会被展示。

这一组 API 涉及的主要概念包括:

  • 参照节点:监听的参照节点,取节点的布局区域作为参照区域。如果有多个参照节点,则会取这些节点的布局区域的 交集 作为参照区域。页面显示区域也可作为参照区域之一。
  • 目标节点:监听的目标,默认只能是一个节点(使用 selectAll 选项时,可以同时监听多个节点)。
  • 相交区域:目标节点的布局区域与参照区域的相交区域。
  • 相交比例:相交区域占参照区域的比例。
  • 阈值:如果相交比例达到阈值,则会触发监听器的回调函数。

以下代码表示当 .ball 和 .scroll-view 相交时,即触发回调函数。

onLoad(){
          this._observer = ty.createIntersectionObserver()
          this._observer
          .relativeTo('.scroll-view')
          .observe('.ball', (res) => {
          this.setData({
          appear: res.intersectionRatio > 0
          })
          })
          }

          onUnload() {
          if (this._observer) this._observer.disconnect()
          }
        

五. 动画

在小程序中,通常可以使用 CSS 渐变 和 CSS 动画 来创建简易的界面动画。 同时,还可以使用 ty.createAnimation 接口来动态创建简易的动画效果。

示例代码

该示例代码实现一个简单的旋转动画效果,实现更多效果。

<view class="animation-element"
          animation="{{animation}}"></view>
          <button bind:tap="rotate">旋转</button>
        
Page({
          data: {
          animation: [],
          },
          onReady: function () {
          this.animation = ty.createAnimation();
          },
          rotate: function () {
          this.animation.rotate(Math.random() * 720 - 360).step();
          let anim = this.animation.export();
          this.setData({ animation: anim });
          },
          });

六. 逻辑层

1. 页面 or 组件获取 App 事件

智能小程序 API 主要提供以下应用级事件:

  • [ty.onAppHide]:监听小程序切后台事件。该事件与 App.onHide 的回调时机一致。
  • [ty.offAppHide]:取消监听小程序切后台事件
  • [ty.onAppShow]:监听小程序切前台事件。该事件与 App.onShow 的回调参数一致。
  • [ty.offAppShow]:取消监听小程序切前台事件。
  • [ty.onError]:监听小程序错误事件。如脚本错误或 API 调用报错等。该事件与 App.onError 的回调时机与参数一致。
  • [ty.offError]:取消监听小程序错误事件。
  • [ty.onThemeChange]:监听主题变更事件。
  • [ty.offThemeChange]:取消监听主题变更事件。
  • [ty.onPageNotFound]:监听小程序要打开的页面不存在事件。该事件与 App.onPageNotFound 的回调时机一致。

2. 智能小程序模块化

👉 立即免费领取开发资源,体验涂鸦 MiniApp 小程序开发。  

高级教程|小程序开发指南进阶篇(三) 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IoT砖家涂拉拉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值