🙏 🙏 🙏
大佬们能否写个代码片段,当鼠标移动到大纲的时候,大纲对应的内容自动展开,当鼠标移出对应的内容时恢复原来状态
🙏 🙏 🙏
🙏 🙏 🙏
大佬们能否写个代码片段,当鼠标移动到大纲的时候,大纲对应的内容自动展开,当鼠标移出对应的内容时恢复原来状态
🙏 🙏 🙏
我让 GPT 辅助写了一个 JS 片段,基本能实现,但我感觉交互很奇怪:
// 鼠标移动到大纲标题自动展开与折叠下级 JS片段
setTimeout(() => {
const headings = document.querySelectorAll('li.b3-list-item[data-type="NodeHeading"]');
headings.forEach((heading) => {
let hideTimeout;
let removeTimeout;
let isMouseInHeading = false; // 标志变量,跟踪鼠标是否在 heading 内
let isMouseInSubMenu = false; // 标志变量,跟踪鼠标是否在子菜单内
// 鼠标进入列表项
heading.addEventListener('mouseenter', () => {
isMouseInHeading = true; // 设置标志变量
clearTimeout(removeTimeout); // 清除可能存在的移除定时器
let nextElement = heading.nextElementSibling;
if (nextElement && nextElement.tagName.toLowerCase() === 'ul') {
removeTimeout = setTimeout(() => {
if (isMouseInHeading) {
nextElement.classList.remove('fn__none');
}
}, 200); // 延迟 200ms 后再移除 fn__none
}
});
// 鼠标离开列表项
heading.addEventListener('mouseleave', () => {
isMouseInHeading = false; // 更新标志变量
hideTimeout = setTimeout(() => {
let nextElement = heading.nextElementSibling;
if (nextElement && nextElement.tagName.toLowerCase() === 'ul' && !isMouseInSubMenu) {
nextElement.classList.add('fn__none');
}
}, 200); // 延迟 200ms 后再添加 fn__none
});
// 鼠标移动到 ul > li 上时,阻止 fn__none 添加
let nextElement = heading.nextElementSibling;
if (nextElement) {
nextElement.querySelectorAll('li').forEach((ulItem) => {
ulItem.addEventListener('mouseenter', () => {
isMouseInSubMenu = true; // 更新标志变量
clearTimeout(hideTimeout); // 清除定时器,防止隐藏
clearTimeout(removeTimeout); // 清除移除定时器
});
ulItem.addEventListener('mouseleave', () => {
isMouseInSubMenu = false; // 更新标志变量
hideTimeout = setTimeout(() => {
if (nextElement) {
nextElement.classList.add('fn__none');
}
}, 200);
});
});
}
});
}, 1000);
七牛云是国内领先的企业级公有云服务商,致力于打造以数据为核心的场景化 PaaS 服务。围绕富媒体场景,七牛先后推出了对象存储,融合 CDN 加速,数据通用处理,内容反垃圾服务,以及直播云服务等。
区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。所谓共识机制是区块链系统中实现不同节点之间建立信任、获取权益的数学算法 。
JSON (JavaScript Object Notation)是一种轻量级的数据交换格式。易于人类阅读和编写。同时也易于机器解析和生成。
Log4j 是 Apache 开源的一款使用广泛的 Java 日志组件。
OpenResty 是一个基于 NGINX 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。
SQL Server 是由 [微软] 开发和推广的关系数据库管理系统(DBMS),它最初是由 微软、Sybase 和 Ashton-Tate 三家公司共同开发的,并于 1988 年推出了第一个 OS/2 版本。
深圳市大疆创新科技有限公司(DJI-Innovations,简称 DJI),成立于 2006 年,是全球领先的无人飞行器控制系统及无人机解决方案的研发和生产商,客户遍布全球 100 多个国家。通过持续的创新,大疆致力于为无人机工业、行业用户以及专业航拍应用提供性能最强、体验最佳的革命性智能飞控产品和解决方案。
Shell 脚本与 Windows/Dos 下的批处理相似,也就是用各类命令预先放入到一个文件中,方便一次性执行的一个程序文件,主要是方便管理员进行设置或者管理用的。但是它比 Windows 下的批处理更强大,比用其他编程程序编辑的程序效率更高,因为它使用了 Linux/Unix 下的命令。
Rust 是一门赋予每个人构建可靠且高效软件能力的语言。Rust 由 Mozilla 开发,最早发布于 2014 年 9 月。
Open Source, Open Mind, Open Sight, Open Future!
好记性不如烂笔头。
互联网运维工作,以服务为中心,以稳定、安全、高效为三个基本点,确保公司的互联网业务能够 7×24 小时为用户提供高质量的服务。
jsDelivr 是一个开源的 CDN 服务,可为 npm 包、GitHub 仓库提供免费、快速并且可靠的全球 CDN 加速服务。
Flume 是一套分布式的、可靠的,可用于有效地收集、聚合和搬运大量日志数据的服务架构。
资讯是用户因为及时地获得它并利用它而能够在相对短的时间内给自己带来价值的信息,资讯有时效性和地域性。
生活是指人类生存过程中的各项活动的总和,范畴较广,一般指为幸福的意义而存在。生活实际上是对人生的一种诠释。生活包括人类在社会中与自己息息相关的日常活动和心理影射。
上帝为你关上了一扇门,然后就去睡觉了....努力不一定能成功,但不努力一定很轻松 (° ー °〃)
Ubuntu(友帮拓、优般图、乌班图)是一个以桌面应用为主的 Linux 操作系统,其名称来自非洲南部祖鲁语或豪萨语的“ubuntu”一词,意思是“人性”、“我的存在是因为大家的存在”,是非洲传统的一种价值观,类似华人社会的“仁爱”思想。Ubuntu 的目标在于为一般用户提供一个最新的、同时又相当稳定的主要由自由软件构建而成的操作系统。
Communication channel for makers and users.
微服务架构是一种架构模式,它提倡将单一应用划分成一组小的服务。服务之间互相协调,互相配合,为用户提供最终价值。每个服务运行在独立的进程中。服务于服务之间才用轻量级的通信机制互相沟通。每个服务都围绕着具体业务构建,能够被独立的部署。
GitBook 使您的团队可以轻松编写和维护高质量的文档。 分享知识,提高团队的工作效率,让用户满意。
你创造的作品可能会帮助到很多人,如果是开源项目的话就更赞了!