feat:1. backtop组件新增组件样式和图标样式的常用属性,方便使用 \n 2. 更新backtop API 文档
This commit is contained in:
parent
f702603843
commit
f5586dec46
@ -136,14 +136,25 @@ export default {
|
||||
::: table
|
||||
|
||||
| 属性 | 说明 | 类型 | 可选值 |
|
||||
| ---------- | --------------------------------------------------- | ------- | ------------------------ |
|
||||
| ------------ | --------------------------------------------- | ------- | -------------------------- |
|
||||
| <strong>通用属性</strong> |
|
||||
| target | 可选,触发滚动的对象 | string | 元素选择器 \| window(默认) |
|
||||
| showHeight | 可选,滚动高度达到该值后显示回到顶部按钮 | number | 200(默认) |
|
||||
| disabled | 可选,禁用点击返回顶部 | boolean | true \| false(默认) |
|
||||
| <strong>组件样式</strong> |
|
||||
| position | 可选,定位方式,特定容器内部需设置为 absolute | string | absolute \| fixed(默认) |
|
||||
| right | 可选,按钮距离页面右边距,单位 px | number | 30(默认) |
|
||||
| bottom | 可选,按钮距离页面底部位置,单位 px | number | 40(默认) |
|
||||
| bgcolor | 可选,背景颜色 | string | \#9F9F9F(默认) |
|
||||
| disabled | 可选,禁用点击返回顶部 | boolean | true \| false(默认) |
|
||||
| opacity | 可选,不透明度 | number | 0.0-1.0 |
|
||||
| color | 可选,前景颜色 | string | #FFFFFF |
|
||||
| borderRadius | 可选,添加圆角 | string | 2px(默认) |
|
||||
| <strong>图标样式</strong>
|
||||
| icon | 可选,图标类型 | string | layui-icon-top(默认) |
|
||||
| iconSize | 可选,图标大小 | number | 30 |
|
||||
| iconPrefix | 可选,图标前缀layui-icon layui-icon-top | string | layui-icon(默认) |
|
||||
| iconColor | 可选,图标颜色 | string | #FFFFFF(默认) |
|
||||
|
||||
|
||||
:::
|
||||
|
||||
@ -153,7 +164,7 @@ export default {
|
||||
::: table
|
||||
|
||||
| 事件名 | 说明 | 回调参数 |
|
||||
| ------ | ------------------------- | -------- |
|
||||
| ------ | -------------------------- | -------- |
|
||||
| click | 点击回到顶部按钮的回调函数 | event |
|
||||
|
||||
:::
|
||||
@ -164,7 +175,7 @@ export default {
|
||||
::: table
|
||||
|
||||
| 插槽名 | 说明 |
|
||||
| ------ | ------------------ |
|
||||
| ------ | ---------- |
|
||||
| — | 自定义内容 |
|
||||
|
||||
:::
|
||||
|
@ -1,4 +1,5 @@
|
||||
<template>
|
||||
<!-- FIXME style为临时方案 -->
|
||||
<div
|
||||
v-show="visible"
|
||||
ref="backtopRef"
|
||||
@ -6,14 +7,23 @@
|
||||
:style="{
|
||||
right: `${props.right}px`,
|
||||
bottom: `${props.bottom}px`,
|
||||
backgroundColor: `${props.bgcolor}`
|
||||
backgroundColor: `${props.bgcolor}`,
|
||||
opacity:`${props.opacity}`,
|
||||
color: `${props.color}`,
|
||||
borderRadius:`${props.borderRadius}`,
|
||||
}"
|
||||
@click.stop="handleClick"
|
||||
@mousedown="backtopRef.style.opacity = 1"
|
||||
@mouseup="backtopRef.style.opacity = 0.95"
|
||||
>
|
||||
<!-- <i v-if="!$slots.default" :class="`layui-icon ${props.icon}`" style="font-size: 30px;"></i> -->
|
||||
<slot>
|
||||
<lay-icon type="layui-icon-top" size="40px"></lay-icon>
|
||||
<lay-icon
|
||||
:type="`layui-icon ${props.icon}`"
|
||||
:size="`${props.iconSize}px`"
|
||||
:prefix="`${props.iconPrefix}`"
|
||||
:color="`${props.iconColor}`">
|
||||
</lay-icon>
|
||||
</slot>
|
||||
</div>
|
||||
</template>
|
||||
@ -30,22 +40,34 @@ import layIcon from '../icon/index';
|
||||
import './index.less';
|
||||
|
||||
export interface LayBacktopProps {
|
||||
// 通用
|
||||
target?: string; // 触发滚动的对象
|
||||
showHeight?: number;
|
||||
disabled?: boolean; // 禁用返回顶部
|
||||
// 组件样式
|
||||
position?: 'fixed' | 'absolute'; // 定位方式,显示在特定容器内部需要设置为 absolute
|
||||
right?: number;
|
||||
bottom?: number;
|
||||
bgcolor?: string;
|
||||
disabled?: boolean; // 禁用返回顶部
|
||||
bgcolor?: string; // 背景颜色
|
||||
opacity?: number; // 不透明度0.01~1.00
|
||||
color?: string; // 前景颜色
|
||||
borderRadius?: string
|
||||
// shape?: 'square' | 'circular';
|
||||
// 图标样式
|
||||
icon?: string;
|
||||
iconSize?: number;
|
||||
iconPrefix?: string;
|
||||
iconColor?: string;
|
||||
|
||||
}
|
||||
|
||||
const props = withDefaults(defineProps<LayBacktopProps>(), {
|
||||
target: 'window',
|
||||
showHeight: 200,
|
||||
position: 'fixed',
|
||||
right: 30,
|
||||
bottom: 40,
|
||||
bgcolor: '#9F9F9F',
|
||||
icon: 'layui-icon-top',
|
||||
iconSize:30,
|
||||
disabled: false,
|
||||
});
|
||||
|
||||
@ -64,7 +86,7 @@ const scrollToTop = () => {
|
||||
behavior: 'smooth' //smooth(平滑滚动),instant(瞬间滚动),默认instant
|
||||
});
|
||||
} else {
|
||||
// FIXME 初版待改进
|
||||
// FIXME 临时动画方案待改进
|
||||
let step = scrollTarget.value.scrollTop / 4;
|
||||
if (scrollTarget.value.scrollTop > 0) {
|
||||
scrollTarget.value.scrollTop -= Math.max(step, 10);
|
||||
|
Loading…
Reference in New Issue
Block a user