2020-04-03 16:34:17 +08:00
|
|
|
|
# @hoc-element/affix
|
|
|
|
|
|
|
2022-01-01 19:46:19 +08:00
|
|
|
|
[](https://www.npmjs.com/package/@hoc-element/affix)
|
2022-01-02 12:06:10 +08:00
|
|
|
|
[](https://github.com/pdsuwwz/hoc-element-affix/blob/main/LICENSE)
|
2020-04-03 16:34:17 +08:00
|
|
|
|
|
2022-01-02 12:58:16 +08:00
|
|
|
|
📌 基于 Webpack 5 构建的 Vue 3.x 固钉组件,用于将页面元素固定在可视范围内 **[Live demo](https://pdsuwwz.github.io/hoc-element-affix)**
|
2020-04-03 16:34:17 +08:00
|
|
|
|
|
2022-01-02 12:58:16 +08:00
|
|
|
|
|
|
|
|
|
|
## Try it Online ⚡️
|
|
|
|
|
|
|
|
|
|
|
|
[StackBlitz](https://stackblitz.com/edit/github-vedset?file=src/views/ExampleAffix.vue)
|
|
|
|
|
|
|
|
|
|
|
|
[](https://stackblitz.com/edit/github-vedset?file=src/views/ExampleAffix.vue)
|
2020-04-04 21:42:29 +08:00
|
|
|
|
|
2022-01-01 16:14:33 +08:00
|
|
|
|
|
|
|
|
|
|
## Version
|
|
|
|
|
|
|
|
|
|
|
|
* Vue 3.x 版本 | [Vue 2.x 版本](https://github.com/pdsuwwz/hoc-element-affix/tree/vue2.0)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-04-03 16:34:17 +08:00
|
|
|
|
## Environment Support
|
|
|
|
|
|
|
2022-01-01 16:14:33 +08:00
|
|
|
|
* Vue 3.2.x
|
2020-04-03 16:34:17 +08:00
|
|
|
|
|
|
|
|
|
|
## Install
|
|
|
|
|
|
|
|
|
|
|
|
```shell
|
|
|
|
|
|
npm install @hoc-element/affix
|
2022-01-01 16:14:33 +08:00
|
|
|
|
|
|
|
|
|
|
# or
|
|
|
|
|
|
|
|
|
|
|
|
pnpm add @hoc-element/affix
|
2020-04-03 16:34:17 +08:00
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
## Quick Start
|
|
|
|
|
|
|
|
|
|
|
|
```js
|
2022-01-01 16:14:33 +08:00
|
|
|
|
import { createApp } from 'vue'
|
2020-04-03 16:34:17 +08:00
|
|
|
|
import HocElementAffix from '@hoc-element/affix'
|
2022-01-01 16:14:33 +08:00
|
|
|
|
import App from './App.vue'
|
2020-04-03 16:34:17 +08:00
|
|
|
|
|
2022-01-01 16:14:33 +08:00
|
|
|
|
createApp(App)
|
|
|
|
|
|
.use(HocElementAffix)
|
|
|
|
|
|
.mount('#app')
|
2020-04-03 16:34:17 +08:00
|
|
|
|
```
|
2020-04-03 18:30:46 +08:00
|
|
|
|
|
2020-10-06 21:43:33 +08:00
|
|
|
|
## Feature
|
|
|
|
|
|
|
2022-01-01 16:14:33 +08:00
|
|
|
|
- [x] 支持 Vue 3.x
|
|
|
|
|
|
- [x] 支持自定义顶部 `offsetTop` 偏移量
|
|
|
|
|
|
- [x] 支持固定状态改变触发回调
|
|
|
|
|
|
- [x] 支持 `Slot` 插槽式的固定状态反馈
|
2020-10-06 21:43:33 +08:00
|
|
|
|
|
2020-04-03 18:30:46 +08:00
|
|
|
|
## Using
|
|
|
|
|
|
|
2020-10-06 21:43:33 +08:00
|
|
|
|
### 绑定参数 Attributes
|
2020-04-03 18:30:46 +08:00
|
|
|
|
|
|
|
|
|
|
| 字段 | 说明 | 类型 | 默认值 |
|
|
|
|
|
|
| -------- | -------- | -------- | -------- |
|
2020-04-05 15:41:37 +08:00
|
|
|
|
| offsetTop | (可选)距离窗口顶部多少时开始固定 | Number | 0 |
|
2020-04-03 18:30:46 +08:00
|
|
|
|
|
2020-10-06 21:43:33 +08:00
|
|
|
|
### 事件 Events
|
|
|
|
|
|
|
|
|
|
|
|
| 字段 | 说明 | 类型 |
|
|
|
|
|
|
| -------- | -------- | -------- |
|
|
|
|
|
|
| change | (可选)固定状态发生改变时的回调函数 | Function |
|
|
|
|
|
|
|
|
|
|
|
|
### 插槽数据 Slot
|
|
|
|
|
|
|
|
|
|
|
|
绑定的数据默认在一个对象里,如需要可直接解构再使用
|
|
|
|
|
|
|
|
|
|
|
|
| 字段 | 说明 | 类型 | 默认值 |
|
|
|
|
|
|
| -------- | -------- | -------- | -------- |
|
|
|
|
|
|
| affixed | (可选)实时的固定状态 | Boolean | false |
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-01-02 11:58:09 +08:00
|
|
|
|
## Example
|
2020-04-03 18:30:46 +08:00
|
|
|
|
|
2022-01-01 16:14:33 +08:00
|
|
|
|
下面是比较全的例子,几乎囊括了 API 的所有用法,源码戳这: [Code](https://github.com/pdsuwwz/hoc-element-affix/tree/main/example/src/views/ExampleAffix.vue )
|
2020-04-03 18:30:46 +08:00
|
|
|
|
|
2022-01-02 11:58:09 +08:00
|
|
|
|
|
|
|
|
|
|
## Deploy
|
|
|
|
|
|
|
2022-01-02 12:06:10 +08:00
|
|
|
|
见仓库 [📍 hoc-element-affix-build](https://github.com/pdsuwwz/hoc-element-affix-build)
|
2022-01-02 11:58:09 +08:00
|
|
|
|
|