Skip to content

右侧属性栏(showPropertyBar)

同样具有showSlot的高度自由度,可以嵌入任意你想要嵌入的内容,但有一定的宽度约束。

一、场景和形态

弹框选择之一,特点是靠边显隐、半透明、非模态。大型桌面软件,右侧属性面板是一个比较常见的现象。

UI效果

image-20250503172917382

现场演示

这是插槽内容,可以是任何 HTML。右键可退出

演示代码如下:

vue
<!--在vitepress中的.md文件中直接引入下面的代码-->
<div>
  <p style="margin-top:0px;" id="usetomodal">这是插槽内容,可以是任何 HTML。</p>
  <button @click="show" style="border:1px solid #999;padding:10px 20px;margin:6px;">
    点我弹出 Slot
  </button>
</div>

<script setup>
import { showPropertyBar } from 'axue';
    const show = () => {
        const rawNode = document.getElementById('usetomodal');
		const slotContent = rawNode.cloneNode(true); // 深拷贝节点内容,避免节点被转移走
        showPropertyBar.send({
            title:"单位面板", 
            slot: slotContent,
            paddingTop:"75px"    //vitepress的顶条层级较高,进行下移规避
       });
    };
</script>

二、使用方式

弹出属性栏

JavaScript
//导入
import {showPropertyBar} from "axue";

//准备插槽节点
const node = document.getElementById('siderbar'); 

//注意,在属性栏显示状态下重新send,会先触发close,再触发实例化显示
showPropertyBar.send({
    title:"单位面板",
    slot:node   
})

主动关闭

JavaScript
showPropertyBar.close()

其他说明

没有实现点击外围就关闭的模态交互体验

  • 原因是面板需要如下支持特殊场景的交互可能,比如:用户打开属性面板,在内部节点中触发事件,需要通过将地图中单位拖动到选项框来实现选中逻辑、或者拾取坐标数据等等。
  • 作为补偿,右击任何地方可以实现关闭,无需移动到关闭按钮处。

参数

send可以传入的参数

内联属性说明类型默认值
title面板标题string""
slot插槽内容,高级自定义能力htmlNode或模板字符串null
paddingTop距离顶部的距离,用于网站顶条层级比较高的情形number|string0px

青锋三尺,樵夫十年