惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

J
Java Code Geeks
Engineering at Meta
Engineering at Meta
GbyAI
GbyAI
MongoDB | Blog
MongoDB | Blog
Blog — PlanetScale
Blog — PlanetScale
腾讯CDC
U
Unit 42
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Apple Machine Learning Research
Apple Machine Learning Research
M
MIT News - Artificial intelligence
人人都是产品经理
人人都是产品经理
Hugging Face - Blog
Hugging Face - Blog
MyScale Blog
MyScale Blog
小众软件
小众软件
博客园 - 三生石上(FineUI控件)
N
Netflix TechBlog - Medium
阮一峰的网络日志
阮一峰的网络日志
博客园 - Franky
Recent Announcements
Recent Announcements
A
About on SuperTechFans
Stack Overflow Blog
Stack Overflow Blog
The GitHub Blog
The GitHub Blog
D
Docker
H
Hackread – Cybersecurity News, Data Breaches, AI and More

smallyu的博客

为什么买的加密货币一定要去中心化 RISC-V 虚拟机无法代替 EVM 虚拟机 Polkadot 的 Existential Deposit 机制错在哪里 利息,套利,交易策略,金融市场 LayerZero 从来不挑战比特币的地位 默认参数引起的以太坊节点运行错误 硬件钱包与资产安全 预测市场比币圈更赌场 为什么去中心化的跨链桥不可能实现 我对于 AI 时代的答案 不要投资任何隐私币 区块链技术世界的三大真理 以太坊 AA 钱包的致命问题是什么 基于 AI 语义执行的 MCP 区块链的设计 一个集成 Geth 和 CometBFT 的兼容层 我的加密货币定投策略(二) DeFi 基础: 理解 AMM 定价机制 Go 语言 GMP 调度器的原理是什么 Web3 项目分析计划 对 Psyche Network 项目的分析 continuation 教程: 理解 CPS 如何开发一个比特币符文(Runes)协议 比特币脚本开发教程 我从王垠的计算机科学视频班学到了什么 区块链技术面试题(2025年版) Rust 语言容易让新手困惑的一个“过度优化” Solana 智能合约开发教程 (1) 尝试开发一个最小 EVM 虚拟机 基于 ZK 的链上身份系统设计 一个 Web3 打赏系统的设计
一种侧边导航栏的交互方式
2020-03-21 · via smallyu的博客

一种侧边导航栏的交互方式

2020-03-21

最近看到几个管理系统的演示项目,结合开发过程中不顺手的地方,发现大多数网站的侧边导航栏都是点击展开,点击关闭。

感觉这样的交互方式稍微有点繁琐:

  • 在不知道子菜单位置的情况下,需要一个一个点开才能找到需要的页面
  • 在知道子菜单位置的情况下,也需要点击一下父级菜单,才能看到想要的子菜单
  • 不一个一个点开,就无法知道子菜单有些什么
  • 子菜单展开之后,需要一次一次点击父菜单才能收起

后来就想,能不能把点击事件换成悬浮事件呢?只要鼠标放上去,菜单就会自动展开,不用点一下的操作了。但是单纯的悬浮展开,需要考虑菜单长度不一致的问题,如果下一个菜单的长度比当前菜单短,鼠标离开当前菜单,当前菜单收回,鼠标所在的位置会直接越过下一长度较短的菜单。

像图片中这样,栏目二的长度是4,栏目三的长度是2,当鼠标从栏目二向下移动,离开栏目二的瞬间栏目二收回内容,鼠标在没有移动的情况下跳过了栏目三,悬浮在栏目四上,这其实是不合理的,会违背用户的预期。栏目二之后是栏目三,这是最正常的逻辑。

为了应对这一问题,也许可以将交互设计成这样,当鼠标离开栏目二后,栏目二不收回,直到鼠标离开整个导航栏,子菜单才自动折叠。如果子菜单展开时用户点击了某一父菜单,那这个父菜单即使鼠标离开导航栏也不收回。

下面是一个demo页面,通过iframe嵌入到这里,可以对比两种侧边导航栏的交互方式(移动端没有鼠标悬浮事件)。我偏爱灵活一点的交互,第二种方式单击父菜单也可以展开收起列表,相当于在方式一的基础上加入了鼠标悬浮自动展开的能力。

相较于鼠标悬浮自动展开不收回的方式,更进阶一点的做法是,当鼠标从上往下移动时,子菜单自动展开但不收回,当鼠标从下往上移动时,子菜单自动展开并且自动收回。因为子菜单要不要自动收回取决于对用户接下来的操作有没有影响。不过这样的效果实现起来有些复杂了,对于网页上的一个导航栏来说,需要不断监听鼠标的坐标,开发和和维护的成本有点高。