Skip to content

Sticky 吸顶

该组件内部实现以uni-appbutton组件为基础,进行了二次封装。

特别提示

在由于右侧的演示是通过iframe引入的,PC端无法正常操作,请在真机演示中查看效果。

注意

此组件内部使用uni-app组件为基础,暴露出来的props基本和官方组件保持一致,不同的平台会有不同的限制,具体可以参考uni-app的官方文档:uni-app官方button组件

平台差异说明

AppH5微信小程序支付宝小程序百度小程序头条小程序QQ小程序
兼容中兼容中兼容中兼容中

基本使用

通过slot,将需要吸顶的内容放在Sticky组件中即可,slot中只能有一个根元素。

注意

由于页面依赖相关的原因的,部分页面会出现Cannot read property 'bottom' of null的报错.

产生问题原因:

sticky组件创建了Observer监听,当切换页面且页面没有销毁(例如:tabbar页面), sticky组件也没有销毁,自然beforeDestroy没有生效,导致组件仍然保持监听,所以出现Cannot read property 'bottom' of null报错。所以我们需要手动断开监听来解决这个报错,如果这个报错影响到了您。

解决办法:

可以在隐藏当前页面的时候将enabled设置为false,然后在显示当前页面的时候将enabled设置为true

vue
<template>
  <view class="container">
    <tn-sticky>
      <!-- 只能有一个根元素 -->
       <view class="sticky-content">图鸟科技</view>
    </tn-sticky>
  </view>
</template>

设置吸顶距离

可以通过offsetTop来设置吸顶时与顶部的距离。

vue
<tn-sticky :offsetTop="100">
  <!-- 只能有一个根元素 -->
  <view class="sticky-content">图鸟科技</view>
</tn-sticky>

API

Props

属性名说明类型默认值可选值
index用于区分多个吸顶容器的自定义标识String|Number--
offsetTop吸顶时距离顶部的距离,单位rpxNumber0-
h5NavHeightH5顶部导航栏的高度Number45-
customNavHeight自定义导航栏的高度,在非H5下生效,在小程序端使用了自定义顶部的时候需要设置该参数Number0-
enabled开启吸顶Booleantruefalse
backgroundColor吸顶容器背景颜色String#FFFFFF-
zIndex吸顶容器z-index值Number19075-

Slots

名称说明
default吸顶容器内的内容

Event

事件名称说明回调参数
fixed组件吸顶时触发index: 组件的标识index
unfixed组件取消吸顶时触发index: 组件的标识index