您当前位置:首页>项目技能>技能技巧

Bootstrap鼠标悬停展开子菜单

发布时间:2022-12-24 阅读量:1005 超级管理员

这个是自己这两天弄一个客户网站时候碰到了一个问题,先前没用过Bootstrap的JS文件,折腾了好一会儿,虽然不是100%完美,也算解决了问题;在这里把问题处理办法记录一下,方便日后再次碰到问题后的处理;方案一 · Bootstrap.js源码修改如果是未压缩过的Bootstrap.js,则在约第9···...

扫码分享二维码

二维码

详细介绍

这个是自己这两天弄一个客户网站时候碰到了一个问题,先前没用过Bootstrap的JS文件,折腾了好一会儿,虽然不是100%完美,也算解决了问题;在这里把问题处理办法记录一下,方便日后再次碰到问题后的处理;

方案一 · Bootstrap.js源码修改

如果是未压缩过的Bootstrap.js,则在约第908~913行左右可以找到以下代码:

  $(document)
    .on('click.bs.dropdown.data-api', clearMenus)
    .on('click.bs.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })
    .on('click.bs.dropdown.data-api', toggle, Dropdown.prototype.toggle)
    .on('keydown.bs.dropdown.data-api', toggle, Dropdown.prototype.keydown)
    .on('keydown.bs.dropdown.data-api', '.dropdown-menu', Dropdown.prototype.keydown)

微信截图_20221225100736.png

如果是被压缩过的Bootstrap.js文件,则直接搜索:

on('click.bs.dropdown.data-api

找到JS里面的以上代码,一起三处,将其中的【on】改为【off】,改后如下:

  $(document)
    .off('click.bs.dropdown.data-api', clearMenus)
    .off('click.bs.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })
    .off('click.bs.dropdown.data-api', toggle, Dropdown.prototype.toggle)
    .on('keydown.bs.dropdown.data-api', toggle, Dropdown.prototype.keydown)
    .on('keydown.bs.dropdown.data-api', '.dropdown-menu', Dropdown.prototype.keydown)

之后在当前菜单所属页面增加以下样式:

<style>
	.navbar .nav > li:hover .dropdown-menu {
		display: block;
	}
</style>


优点:由原来的点击打开子菜单,切换为悬停;

缺点:无法点击子菜单,当鼠标移开主菜单后,子菜单消失;


方案二 · Bootstrap.js源码修改

如果是被压缩过的Bootstrap.js文件,则直接搜索:

click.bs.dropdown

将其中的【click】改为【mouseover】

也可快速实现鼠标悬停出现子菜单的效果;


优点:由原来的点击打开子菜单,切换为悬停;

缺点:无法点击子菜单,当鼠标移开主菜单后,子菜单消失;


方案三· Bootstrap.js源码修改

Bootstrap中的导航条默认鼠标点击才会显示子菜单,可以通过如下脚本修改默认行为,使得鼠标悬停展开子菜单。

 <script>
  $(function(){
    //鼠标移入和移出,显示或隐藏子菜单
    $("li.dropdown").mouseover(function () {
      $(this).children(".dropdown-menu").show();
    }).mouseout(function () {
      $(this).children(".dropdown-menu").hide();
    });
    //点击子菜单项的时候隐藏子菜单
    $(".dropdown-item").click(function () {
        $(this).parent(".dropdown-menu").hide();
    });
  });
</script>

直接将以上代码放到目标页面的body区域即可;

优点:由原来的点击打开子菜单,切换为悬停,且可以子菜单正常点击的同时,主菜单亦能正常点击;

缺点:当鼠标移开主菜单后,子菜单未消失


上一篇 PBOOTCMS上传服务器后无法上传图片提示请求上传接口异常
下一篇 网站快速添加按钮切换語言: English | 简体中文 | 繁體中文

内容版权声明

Copyright Notice

内容链接: https://www.diezanrpa.com/jinengjiqiao/238.html
内容标题: Bootstrap鼠标悬停展开子菜单

当前文章由【付涛】本人原创开发与文案内容写作,内容版权归当前平台所有,如需转载,请务必注明来源及链接,谢谢合作!

本文最后更新发布于【2022-12-24】,某些文章具有时效性,若有错误或已失效,请联系客服

争议处理:针对本站内容若有异义,亦可直接与【法律顾问:易兴俊,律师联系电话:13825799821】直接联系沟通

GEO