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

推荐订阅源

Google DeepMind News
Google DeepMind News
爱范儿
爱范儿
J
Java Code Geeks
L
LangChain Blog
V
V2EX
大猫的无限游戏
大猫的无限游戏
S
SegmentFault 最新的问题
博客园 - Franky
Microsoft Azure Blog
Microsoft Azure Blog
Jina AI
Jina AI
Blog — PlanetScale
Blog — PlanetScale
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
The Cloudflare Blog
博客园 - 司徒正美
B
Blog
G
Google Developers Blog
Stack Overflow Blog
Stack Overflow Blog
罗磊的独立博客
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Apple Machine Learning Research
Apple Machine Learning Research
Engineering at Meta
Engineering at Meta
MyScale Blog
MyScale Blog
有赞技术团队
有赞技术团队
Hugging Face - Blog
Hugging Face - Blog

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

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