如何创建带自定义工具的垂直对齐toolbar并移除标准查看器toolbar中的原有工具?
实现方案
完全可以实现你要的效果,具体操作步骤如下:
- 第一步:禁用标准工具栏的指定工具
直接在viewer初始化的配置项里添加禁用规则即可,不会影响工具本身的功能调用,只会将其从默认工具栏中隐藏。以常用的PDF.js Viewer为例,配置代码为:
其他主流Web Viewer类库(如PSPDFKit、Foxit Web Viewer)均提供了类似的工具禁用配置项,直接替换对应配置即可。const viewer = new PDFViewer({ // 其他基础配置 disabledTools: ['measure', 'distanceMeasurement', 'areaMeasurement'] }) - 第二步:创建垂直对齐的自定义工具栏
你可以手动编写DOM结构,通过CSS设置垂直布局:可以使用flex-direction: column的flex布局,也可以设置writing-mode: vertical-lr实现文字竖排的垂直工具栏效果。如果所用Viewer类库提供自定义工具栏API,也可以直接调用API生成指定布局的工具栏。 - 第三步:绑定自定义工具的触发逻辑
给自定义工具栏上的测量等工具按钮绑定触发事件,直接调用对应工具的激活方法即可,和默认工具栏的调用逻辑完全一致,示例代码如下:// 给自定义测量按钮绑定点击事件 document.querySelector('#custom-measure-btn').addEventListener('click', () => { const measureTool = viewer.toolManager.getTool('measure') // 切换工具激活状态 measureTool.isActive ? measureTool.deactivate() : measureTool.activate() }) - 额外注意点
记得做工具状态同步:当工具被其他逻辑触发激活/禁用时,同步修改自定义工具栏对应按钮的高亮、禁用状态,避免两边状态不一致。
内容的提问来源于stack exchange,提问作者Alder Moriggi
相关产品推荐
相关产品推荐

