heimrichhannot / contao-menu-bundle
此包为 Contao CMS 添加了多级菜单模块。
0.5.7
2024-01-30 14:41 UTC
Requires
- php: ^7.1||^8.0
- contao/core-bundle: ^4.4
- heimrichhannot/contao-encore-contracts: ^1.0
- heimrichhannot/contao-utils-bundle: ^2.116
Requires (Dev)
- contao/manager-plugin: ^2.0
- contao/test-case: 1.1.*
- friendsofphp/php-cs-fixer: ^2.2
- php-http/guzzle6-adapter: ^1.1
- php-http/message-factory: ^1.0.2
- phpunit/php-token-stream: ^1.4|^2.0|^3.0
- phpunit/phpunit: ^6.5
- phpunit/phpunit-mock-objects: ^4.0|^5.0
- satooshi/php-coveralls: ^2.0
- symfony/phpunit-bridge: ^3.2
README
此包为 Contao CMS 添加了多级菜单模块。
功能
- 子菜单通过悬停(或触摸设备上的点击)打开
- 适用于鼠标和基于触摸的设备
- 包含适用于 bootstrap 4 的预设模板(
nav_huh_menu_bs4
) - 定义折叠的级别数量
- 定义打开和关闭子菜单的延迟
行为
菜单基于 mouseover
事件("悬停")。这种方式使得它适用于鼠标和基于触摸的设备,因为在大多数触摸设备上,mouseover
事件由点击事件触发。
在 window.navigator.maxTouchPoints
为 0 的设备上,您也可以点击子菜单标题,因为子菜单是通过悬停打开的。
技术备注
事件
为什么在多触点设备上不能点击子菜单标题?
因为这样子菜单条目将永远无法访问。
在 Microsoft Surface 上
即使在平板模式,设备也不抛出 touch
事件,而是抛出 mouse
事件。它还伪装成带有鼠标的桌面电脑。因此,它告诉浏览器它支持 hovering
(Modernizr.hovermq
是 true
)。所以如果我们允许子菜单标题可以点击并直接打开,这不仅会在鼠标连接时发生,而且在使用手指的平板模式时也会发生。在这种情况下,子菜单条目将永远无法访问。
当我悬停在子菜单上方时,菜单关闭了
HTML 文档必须在 standards
模式下。请确保已设置!
这通常是由 CSS 外边距引起的。请只使用填充来调整菜单项的尺寸。请确保子菜单(ul 和 li)占据光标可以悬停的空间。
已知问题
关于较小的屏幕尺寸怎么办?
目前此菜单仅适用于平板电脑横屏和更大的尺寸。因此,请使用其他模块处理这种情况。尽管如此,本包计划支持 bootstrap 的移动菜单,以支持更小的屏幕尺寸。