首先感谢 wilsons,此 js 是是基于该代码实现的
功能:如图所示,在面包屑右边增加一个按钮,用于快速隐藏当前展开的侧栏/重新打开上次隐藏的侧栏(或者按 Alt+Z 快捷键)
实际上这个功能已经内置在 QYL 主题,但考虑到很多小伙伴用的默认主题或者其他主题,因此把这个功能分享出来,适用于所有主题
使用方法:
1.粘贴 https://gitee.com/wish163/mysoft/blob/main/%E6%80%9D%E6%BA%90/%E6%A8%A1%E6%8B%9F%E8%BF%9E%E7%BB%AD%E7%82%B9%E5%87%BBopenAny.js 的代码,放在思源 js 代码片段
2.粘贴如下代码,放在刚才的代码后面
(() => {
const dockManager = new OpenAny();
let lastDockTypes = [];
const toggleDockItems = async () => {
const activeDocks = document.querySelectorAll('.dock__item--active');
if (activeDocks.length > 0) {
lastDockTypes = Array.from(activeDocks).map(dock => `[data-type="${dock.dataset.type}"]`);
await new OpenAny().clicks(lastDockTypes);
} else if (lastDockTypes.length > 0) {
await new OpenAny().clicks(lastDockTypes);
}
};
dockManager.setKeymap('alt+z', async e => {
e.preventDefault();
await toggleDockItems();
});
dockManager.invoke(({ onProtyleLoad }) => {
onProtyleLoad(protyle => {
const targetElement = protyle.querySelector('.layout__center .protyle-breadcrumb');
if (!targetElement || targetElement.querySelector('[data-type="toggle-dock"]')) return;
const btnHTML = `<button class="block__icon fn__flex-center ariaLabel" aria-label="快速隐藏/呼出侧栏" data-type="toggle-dock"><svg><use xlink:href="#iconDock"></use></svg></button>`;
targetElement.insertAdjacentHTML('beforeend', btnHTML);
targetElement.querySelector('[data-type="toggle-dock"]').addEventListener('click', () => {
toggleDockItems().catch(() => {});
});
});
});
})();
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于