Bootstrap dorpdown hover
Bootstrap下拉菜单默认需要通过点击,才可以打开,在管理系统的开发过程中,使用悬停代替点击能减少一步操作,更人性化。
一、纯css样式控制。
1 2 3 4 | .dropdown:hover .dropdown-menu { display : block ; margin-top : 0 ; // remove the gap so it doesn't close } |
优点:实现简单,无需借助js。
缺点:触发按钮跟下拉菜单之间不能有间隙,否则一失焦下拉菜单就会消失。
二、插件实现。
bootstrap-hover-dropdown 插件可以实现此功能。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <!-- script order matters! --> < script src="/path/to/jquery.min.js"></ script > < script src="/path/to/bootstrap.min.js"></ script > < script src="/path/to/bootstrap-hover-dropdown.min.js"></ script > < li class="dropdown"> < a href="#" class="dropdown-toggle" data-toggle="dropdown" data-hover="dropdown"> Account < b class="caret"></ b > </ a > < ul class="dropdown-menu"> < li >< a href="#">菜单一</ a ></ li > </ ul > </ li > |
优点:使用简单。
缺点:该插件存在不确定性BUG,且自从2015年底至今一直没有维护更新。
(亲历:多行表格中,每行都有dropdown按钮,hover时有时显示不正常)。
三、css+hover+timeout实现。
基于方案一,通过样式控制是否显示,通过hover事件控制是否添加样式,通过timeout解决异常失焦问题。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | .dropdown.hover .dropdown-menu { display: block; margin-top: 0; } $( '[data-toggle="dropdown"]' ).hover( function (){ var $parents = $( this ).parents( '.dropdown' ); window.dropDownTimer&&clearTimeout(window.dropDownTimer); $( '.dropdown' ).removeClass( 'hover' ); $parents.addClass( 'hover' ); }, function (){ var $parents = $( this ).parents( '.dropdown' ); window.dropDownTimer = setTimeout( function (){ $parents.removeClass( 'hover' ); },500) }) |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
2017-05-17 记直播项目的那些改版