sticky-section

基础库 2.29.0 开始支持,低版本需做兼容处理。

相关文档: Skyline 渲染引擎、Skyline 迁移起步

渲染框架支持情况:Skyline (使用最新 Nightly 工具调试)

功能描述

吸顶布局容器,仅支持作为 <scroll-view type="custom"> 模式的直接子节点

属性说明

属性 类型 默认值 必填 说明 最低版本
push-pinned-header boolean true 吸顶元素重叠时是否继续上推
padding Array [0, 0, 0, 0] 长度为 4 的数组,按 top、right、bottom、left 顺序指定内边距 3.0.0

示例代码

在开发者工具中预览效果

sticky-header

基础库 2.29.0 开始支持,低版本需做兼容处理。

相关文档: Skyline 渲染引擎、Skyline 迁移起步

渲染框架支持情况:Skyline (使用最新 Nightly 工具调试)

功能描述

吸顶布局容器,仅支持作为 <scroll-view type="custom"> 模式的直接子节点或 sticky-section 组件直接子节点

属性说明

属性 类型 默认值 必填 说明 最低版本
offset-top number 0 吸顶时与视窗顶部的距离(px) 3.0.0
allow-overlapping bool false 是否允许与前一个 sticky-header 重叠 3.7.11
padding Array [0, 0, 0, 0] 长度为 4 的数组,按 top、right、bottom、left 顺序指定内边距(px) 3.0.0
bind:stickontopchange eventhandle 吸顶状态变化事件,仅支持非 worklet 的组件方法作为回调。event.detail = { isStickOnTop },当 sticky-header 吸顶时为 true,否则为 false。 3.6.2

示例代码

在开发者工具中预览效果

span

渲染框架支持情况:Skyline (使用最新 Nightly 工具调试)

功能描述

用于支持内联文本和 image / navigator 的混排

snapshot

基础库 3.0.1 开始支持,低版本需做兼容处理。

渲染框架支持情况:Skyline (使用最新 Nightly 工具调试)

功能描述

截图组件。 支持将其子节点的渲染结果导出成图片,该组件需配合 snapshot 接口使用。 目前仅在 Skyline 渲染引擎 下支持。

通用属性

属性 类型 默认值 必填 说明
mode string view 渲染模式
合法值 说明 最低版本
view 以真实节点渲染。 3.1.0
picture 对子节点生成的内容截图渲染。 3.1.0

Bug & Tip

  1. tip:如需离屏渲染导出,可将 snapshot 组件移动到屏幕外或设置 width: 100%; position: absolute; transform: scale(0) 即可,但不能设置为 display: none 或 visibility: hidden
  2. tip:子节点不能包含原生组件,其他任意组件均可使用
  3. tip:支持对任意大小的区域导出图片,即导出图片没有尺寸限制
  4. tip: 如需实现长列表截图,不建议直接嵌在 scroll-view 内(即 <scroll-view><snapshot></snapshot></scroll-view>),会影响列表滚动性能,建议将 snapshot 组件放在 scroll-view 外,与 scroll-view 加载同一批列表数据,要截图时再将 snapshot 渲染出来

渲染模式

Skyline 下对节点进行 transform: scale() rotate() 动画时,若子节点内容比较复杂,动画性能可能不佳。为解决该问题,可利用 snapshot 组件改变渲染模式。

<snapshot mode="view">
 <view></view>
</snapshot>

view 模式渲染时,snapshot 组件与普通的 view 无差别,对子节点设置样式,变化会体现在界面上。 以 picture 模式渲染时,snapshot 组件会对当下渲染的子节点进行截图,后续子节点被替换为图片进行渲染,此时对子节点设置样式,变化不会体现在界面上。

picture 模式下进行 transform: scale() rotate() 动画时,性能较好。此时通过 setData 等对子节点进行的修改,当再次切换为 view 模式时,界面会立刻改变为最终样式。

通常在对大范围节点进行 scalerotate 动画时,可在动画开始设置为 picture 模式,动画结束设置为 view 模式,以提高动画表现。如子节点内容会发生改变,则不适用该模式切换。

示例代码

  <snapshot id="target">
    <view>content</view>
  </snapshot>
Page({
  onReady() {
    this.createSelectorQuery()
      .select("#target")
      .node()
      .exec(res => {
        const node = res[0].node
        node.takeSnapshot({
          type: 'arraybuffer',
          format: 'png',
          success: (res) => {},
          fail(res) {}
        })
  }
})

示例代码片段

在开发者工具中预览效果

share-element

基础库 2.16.0 开始支持,低版本需做兼容处理。

微信 Windows 版:支持

微信 Mac 版:支持

微信 鸿蒙 OS 版:支持

渲染框架支持情况:Skyline (使用最新 Nightly 工具调试)、WebView

功能描述

共享元素。

共享元素是一种动画形式,类似于 Flutter 的 Hero 动画,表现为元素像是在页面间穿越一样。该组件需与 page-container 组件结合使用。

使用时需在当前页放置 share-element 组件,同时在 page-container 容器中放置对应的 share-element 组件,对应关系通过属性值 key 映射。当设置 page-container 显示时,transform 属性为 true 的共享元素会产生动画。当前页面容器退出时,会产生返回动画。

  1. 使用 worklet 函数需要开启开发者工具 “将 JS 编译成 ES5” 或 “编译 worklet 函数” 选项。

通用属性

属性 类型 默认值 必填 说明 最低版本
key string 映射标记,页面内唯一 2.29.2
transform boolean false 是否进行动画 2.16.0
duration number 300 动画时长,单位毫秒 2.16.0
easing-function string ease-out css缓动函数 2.16.0

Skyline 特有属性

属性 类型 默认值 必填 说明 最低版本
transition-on-gesture boolean false 手势返回时是否进行动画 2.29.2
shuttle-on-push string to 指定 push 阶段的飞跃物 2.30.2
合法值 说明
from push 阶段采用源页面节点作为飞跃物
to push 阶段采用目标页面节点作为飞跃物
from pop 阶段采用源页面节点作为飞跃物
to pop 阶段采用目标页面节点作为飞跃物
shuttle-on-pop string to 指定 pop 阶段的飞跃物 2.30.2
worklet:onframe callback 动画帧回调 2.30.2
rect-tween-type string materialRectArc 动画插值曲线 2.30.2
合法值 说明
materialRectArc 矩形对角动画
materialRectCenterArc 径向动画
linear
elasticIn
elasticOut
elasticInOut
bounceIn
bounceOut
bounceInOut
cubic-bezier(x1, y1, x2, y2 )

WebView 示例代码

在开发者工具中预览效果

Skyline 示例代码

在开发者工具中预览效果

open-data-list

基础库 3.7.8 开始支持,低版本需做兼容处理。

相关文档: 聊天工具模式、Skyline 渲染引擎、Skyline 迁移起步

渲染框架支持情况:Skyline (使用最新 Nightly 工具调试)

功能描述

展示微信开放数据。

通用属性

属性 类型 默认值 必填 说明
type string 开放数据类型
合法值 说明
groupMembers 群成员信息
members Array.<string> 群成员group_openid列表

示例代码

<open-data-list type="groupMembers" members="{{members}}">
  <view class="userinfo" slot:index>
    <open-data-item class="avatar " type="userAvatar" index="{{index}}" />
    <open-data-item class="" type="userNickName" index="{{index}}" />
  </view>
</open-data-list>

open-data-item

基础库 3.7.8 开始支持,低版本需做兼容处理。

相关文档: 聊天工具模式、Skyline 渲染引擎、Skyline 迁移起步

渲染框架支持情况:Skyline (使用最新 Nightly 工具调试)

功能描述

展示微信开放数据,需配合 open-data-list 组件使用。

通用属性

属性 类型 默认值 必填 说明
type string 开放数据类型
合法值 说明
userNickName 用户昵称
userAvatar 用户头像
index number 序号

示例代码

<open-data-list type="groupMembers" members="{{members}}">
  <view class="userinfo" slot:index>
    <open-data-item class="avatar " type="userAvatar" index="{{index}}" />
    <open-data-item class="" type="userNickName" index="{{index}}" />
  </view>
</open-data-list>

open-container

基础库 3.4.0 开始支持,低版本需做兼容处理。

渲染框架支持情况:Skyline (使用最新 Nightly 工具调试)

功能描述

容器转场动画组件。

点击 <open-container> 组件,当使用 wx.navigateTo 跳转下一页面时,对其子节点和下一个页面进行过渡。

下个页面从 <open-container> 所在位置大小渐显放大,同时 <open-container> 内容渐隐,过渡效果包含背景色、圆角和阴影。

源页面 <open-container>closed 状态,转场动画后为 open 状态。

通用属性

属性 类型 默认值 必填 说明
closed-color string white 初始容器背景色
closed-elevation number 0 初始容器影深大小
closed-border-radius number 0 初始容器圆角大小
middle-color string fadeThrough 模式下的过渡背景色
open-color string white 打开状态下容器背景色
open-elevation number 0 打开状态下容器影深大小
open-border-radius number 0 打开状态下容器圆角大小
transition-duration number 300 动画时长
transition-type string fade 动画类型
合法值 说明
fade 将传入元素淡入传出元素之上
fadeThrough 首先淡出传出元素,并在传出元素完全淡出后开始淡入传入元素

示例代码

<open-container
  closed-elevation="{{closedElevation}}"
  closed-border-radius="{{closedBorderRadius}}"
  open-elevation="{{openElevation}}"
  open-border-radius="{{openBorderRadius}}"
  transition-type="{{type}}"
  transition-duration="{{duration}}"
  bind:tap="goDetail"
>
  <card/>
</open-container>
Page({
   goDetail() {
    wx.navigateTo({
      url: 'nextPageUrl'
    })
  }
})

示例代码片段

在开发者工具中预览效果

nested-scroll-header

基础库 3.2.0 开始支持,低版本需做兼容处理。

相关文档: Skyline 渲染引擎、Skyline 迁移起步

渲染框架支持情况:Skyline (使用最新 Nightly 工具调试)

功能描述

在嵌套的 scroll-view 场景中,属于外层 scroll-view 的节点,只支持作为 <scroll-view type="nested"> 模式的直接子节点。不支持多个子节点,渲染时会取第一个子节点来渲染。具体用法可以参考 scroll-view

使用方法

<scroll-view
  type="nested"
  scroll-y
>
  <nested-scroll-header>
    <view>会渲染</view>
    <view>不会渲染,因为 nested-scroll-header 只会渲染第一个子节点</view>
  </nested-scroll-header>
  <nested-scroll-header>
    <view>如果存在多个头部节点,那么就使用多个 nested-scroll-header 来将其包裹</view>
  </nested-scroll-header>
  <nested-scroll-body>
    <view></view>
  </nested-scroll-body>
</scroll-view>

nested-scroll-body

基础库 3.2.0 开始支持,低版本需做兼容处理。

相关文档: Skyline 渲染引擎、Skyline 迁移起步

渲染框架支持情况:Skyline (使用最新 Nightly 工具调试)

功能描述

在嵌套的 scroll-view 场景中,属于里层 scroll-view 的节点,只支持作为 <scroll-view type="nested"> 模式的直接子节点。不支持多个子节点,渲染时会取第一个子节点来渲染。具体用法可以参考 scroll-view。

属性说明

属性 类型 默认值 必填 说明 最低版本
offset-top number 0 滚动目标距离顶部的距离(单位:px)。在外层 scroll-view 滚动时,此组件会在主轴方向逐渐撑开,直到此组件顶部与视窗顶部距离等于该属性值时,才开始里层 scroll-view 的滚动。默认为 0,即表示此组件撑开到顶部与视窗顶部齐平时,才开始里层 scroll-view 的滚动。 3.6.2

使用方法

<scroll-view
  type="nested"
  scroll-y
>
  <nested-scroll-header>
    <view></view>
  </nested-scroll-header>
  <nested-scroll-body>
    <scroll-view
      type="list"
      scroll-y
    >
      <view>嵌套里层的 scroll-view</view>
    </scroll-view>
    <view>不会渲染,因为 nested-scroll-body 只会渲染第一个子节点</view>
  </nested-scroll-body>
</scroll-view>