点我扫二维码,查看demo

# Sticky 粘性布局组件

# 介绍

Sticky 组件与 CSS 中position: sticky属性实现的效果一致,当组件在屏幕范围内时,会按照正常的布局排列,当组件滚出屏幕范围时,始终会固定在屏幕顶部。

# 引入

通过以下方式来按需注册组件。

import Vue from 'vue';
import { Sticky } from '@dolphin-iot/ui'

Vue.use(Sticky);
1
2
3
4

# 代码演示

# 基础用法

将内容包裹在 Sticky 组件内即可。

<template>
    <div class="container">
        <mx-sticky>
            <mx-nav-bar title="粘性布局" />
        </mx-sticky>
    </div>
</template>
<style>
.container{
    height:3000px
}
</style>
1
2
3
4
5
6
7
8
9
10
11
12

# 吸附距离

通过设置 offset 属性,可以控制组件,吸附顶部的距离。

<template>
    <div class="container">
        <mx-sticky :offset="50">
            <mx-nav-bar title="吸顶距离" />
        </mx-sticky>
    </div>
</template>
<style>
.container{
    height:3000px
}
</style>
1
2
3
4
5
6
7
8
9
10
11
12

# 吸附距离

通过 container 属性可以指定组件的容器,页面滚动时,组件会始终保持在容器范围内,当组件即将超出容器底部时,会固定在容器的底部。

<template>
    <div class="container">
        <div ref="sc" class="sticky-container">
            <mx-sticky :container="sc" :offset="50">
                <mx-nav-bar title="吸顶距离" />
            </mx-sticky>
        </div>
    </div>
</template>
<script>
    export default{
        data(){
            return {
                sc:null
            }
        },
        mounted(){
            this.sc = this.$refs.sc
        }
    }
</script>
<style>
.container{
    height:3000px
}
.sticky-container{
    height: 300px
}
</style>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29

# Api

# Props

参数 说明 类型 默认值 是否必须
offset 指定吸附的距离 number 0 -
container 指定吸附的容器 element - -
position 指定吸附为顶部还是底部,可选值为: top, bottom string top -
z-index 指定吸附时的z轴层级 number 1060 -

# Events

事件名称 说明 回调参数
scroll 滚动时触发 { scrollTop: number, isFixed: boolean }
更新时间: 12/3/2021, 1:36:49 PM