更新记录
0.1.1(2024-11-18)
下载此版本
0.1.0(2024-11-15)
下载此版本
0.0.9(2024-09-15)
下载此版本
查看更多
平台兼容性
App |
快应用 |
微信小程序 |
支付宝小程序 |
百度小程序 |
字节小程序 |
QQ小程序 |
HBuilderX 4.28 app-vue app-uvue |
× |
√ |
× |
× |
× |
× |
钉钉小程序 |
快手小程序 |
飞书小程序 |
京东小程序 |
× |
× |
× |
× |
H5-Safari |
Android Browser |
微信浏览器(Android) |
QQ浏览器(Android) |
Chrome |
IE |
Edge |
Firefox |
PC-Safari |
√ |
√ |
√ |
√ |
× |
× |
× |
× |
× |
lime-floating-panel 浮动面板
- 浮动在页面底部的面板,可以上下拖动来浏览内容,常用于提供额外的功能或信息。
代码演示
基础用法
FloatingPanel 的默认高度为 100px
,用户可以拖动来展开面板,使高度达到 60%
的屏幕高度。
<l-floating-panel>
<view>内容</view>
</l-floating-panel>
自定义锚点
你可以通过 anchors
属性来设置 FloatingPanel 的锚点位置,并通过 v-model:height
来控制当前面板的显示高度
比如,使面板的高度在 100px
、40% 屏幕高度和 70% 屏幕高度三个位置停靠:
// vue3 v-model:height
// vue2 :height.sync
<l-floating-panel v-model:height="height" :anchors="anchors">
<view style="text-align: center; padding: 15px">
<p>面板显示高度 {{ height.toFixed(0) }} px</p>
</view>
</l-floating-panel>
import { ref } from 'vue';
export default {
setup() {
const {windowHeight} = uni.getSystemInfoSync()
const anchors = [
100,
Math.round(0.4 * windowHeight),
Math.round(0.7 * windowHeight),
];
const height = ref(anchors[0]);
return { anchors, height };
},
};
仅头部拖拽
默认情况下,FloatingPanel 的头部区域和内容区域都可以被拖拽,你可以通过 content-draggable
属性来禁用内容区域的拖拽。
<l-floating-panel :content-draggable="false">
<view style="text-align: center; padding: 15px">
<text>内容不可拖拽</text>
</view>
</l-floating-panel>
设置初始锚点位
默认情况下,FloatingPanel 的初始锚点位为0,可以通过设置 defaultAnchor
改变初始锚点位。
<l-floating-panel :defaultAnchor="1">
<view style="text-align: center; padding: 15px">
<text>内容</text>
</view>
</l-floating-panel>
跳到指定锚点位
FloatingPanel 暴露 toAnchor
方法,可以跳到指点的锚点位。
<l-floating-panel ref="floatingPanelRef>
<view style="text-align: center; padding: 15px">
<text>内容</text>
</view>
</l-floating-panel>
<button @click="to">跳到1</button>
const floatingPanelRef = ref(null)
const to = () => floatingPanelRef.value.toAnchor(1)
查看示例
<!-- // 代码位于 uni_modules/lime-floating-panel/compoents/lime-floating-panel -->
<lime-floating-panel />
插件标签
- 默认 l-floating-panel 为 component
- 默认 lime-floating-panel 为 demo
关于vue2的使用方式
API
Props
参数 |
说明 |
类型 |
默认值 |
v-model:height |
当前面板的显示高度 |
number | string |
0 |
anchors |
设置自定义锚点, 单位 px |
number[] |
[100, windowHeight * 0.6] |
animation |
是否开启动画 |
boolean |
true |
content-draggable |
允许拖拽内容容器 |
boolean |
true |
safe-area-inset-bottom |
是否开启底部安全区域 |
boolean |
true |
defaultAnchor |
默认的锚点下标,如果指定了就在会anchors 里找到相应的高度 |
number |
0 |
Events
事件名 |
说明 |
回调参数 |
height-change |
面板显示高度改变且结束拖动后触发 |
{ height: number } |
change |
面板显示高度改变且结束拖动后触发 |
{ height: number, index: number } |
Slots
Name |
Description |
default |
自定义面板内容 |
主题定制
样式变量
- nvue 不支持
组件提供了下列 CSS 变量,可用于自定义样式。
Name |
Default Value |
Description |
--l-floating-panel-border-radius |
16px |
- |
--l-floating-panel-header-height |
30px |
- |
--l-floating-panel-z-index |
999 |
- |
--l-floating-panel-background |
white |
- |
--l-floating-panel-bar-width |
20px |
- |
--l-floating-panel-bar-height |
3px |
- |
--l-floating-panel-bar-color |
#ddd |
- |