Vant4 Sticky 粘性布局

2023-02-16 17:56 更新

介紹

Sticky 組件與 CSS 中 position: sticky 屬性實(shí)現(xiàn)的效果一致,當(dāng)組件在屏幕范圍內(nèi)時(shí),會(huì)按照正常的布局排列,當(dāng)組件滾出屏幕范圍時(shí),始終會(huì)固定在屏幕頂部。

引入

通過(guò)以下方式來(lái)全局注冊(cè)組件,更多注冊(cè)方式請(qǐng)參考組件注冊(cè)。

import { createApp } from 'vue';
import { Sticky } from 'vant';

const app = createApp();
app.use(Sticky);

代碼演示

基礎(chǔ)用法

將內(nèi)容包裹在 ?Sticky? 組件內(nèi)即可。

<van-sticky>
  <van-button type="primary">基礎(chǔ)用法</van-button>
</van-sticky>

吸頂距離

通過(guò) ?offset-top? 屬性可以設(shè)置組件在吸頂時(shí)與頂部的距離。

<van-sticky :offset-top="50">
  <van-button type="primary">吸頂距離</van-button>
</van-sticky>

指定容器

通過(guò) ?container? 屬性可以指定組件的容器,頁(yè)面滾動(dòng)時(shí),組件會(huì)始終保持在容器范圍內(nèi),當(dāng)組件即將超出容器底部時(shí),會(huì)固定在容器的底部。

<div ref="container" style="height: 150px;">
  <van-sticky :container="container">
    <van-button type="warning">指定容器</van-button>
  </van-sticky>
</div>
export default {
  setup() {
    const container = ref(null);
    return { container };
  },
};

吸底距離

將 ?position? 設(shè)置為 ?bottom? 可以讓組件吸附在底部。通過(guò) ?offset-bottom? 屬性可以設(shè)置組件在吸底時(shí)與底部的距離。

<van-sticky :offset-bottom="50" position="bottom">
  <van-button type="primary">吸底距離</van-button>
</van-sticky>

API

Props

參數(shù) 說(shuō)明 類型 默認(rèn)值
position v3.0.6 吸附位置,可選值為 bottom string top
offset-top 吸頂時(shí)與頂部的距離,支持 px vw vh rem 單位,默認(rèn) px number | string 0
offset-bottom v3.0.6 吸底時(shí)與底部的距離,支持 px vw vh rem 單位,默認(rèn) px number | string 0
z-index 吸頂時(shí)的 z-index number | string 99
container 容器對(duì)應(yīng)的 HTML 節(jié)點(diǎn) Element -

Events

事件名 說(shuō)明 回調(diào)參數(shù)
change v3.0.10 當(dāng)吸頂狀態(tài)改變時(shí)觸發(fā) isFixed: boolean
scroll 滾動(dòng)時(shí)觸發(fā) { scrollTop: number, isFixed: boolean }

類型定義

組件導(dǎo)出以下類型定義:

import type { StickyProps, StickyPosition } from 'vant';

主題定制

樣式變量

組件提供了下列 CSS 變量,可用于自定義樣式,使用方法請(qǐng)參考 ConfigProvider 組件。

名稱 默認(rèn)值 描述
--van-sticky-z-index 99 -


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)