将下拉子菜单保留在屏幕内的 jQuery 解决方案

2024-01-04

我正在使用 bootstrap 作为我的下拉菜单。但它有一个问题,

如果我的下拉菜单有多级子菜单,那么它会显示在屏幕上,并且会出现底部滚动条。

如何将子菜单保留在屏幕内,我需要一个 jQuery 解决方案。

检查我的屏幕截图


这是操场:

http://jsfiddle.net/howtoplease/svLKN/ http://jsfiddle.net/howtoplease/svLKN/


这是下拉 HTML

<div class="navbar navbar-fixed-top">
  <div class="navbar-inner">
      <div class="container-fluid">
        <div class="nav-collapse">
          <ul class="nav">
            <li class="active"><a href="#">Home</a></li>
            <li><a href="#">Link</a></li>
            <li><a href="#">Link</a></li>
            <li><a href="#">Link</a></li>
            <li class="dropdown">
              <a data-toggle="dropdown" class="dropdown-toggle" href="#">Dropdown <b class="caret"></b></a>
              <ul class="dropdown-menu">
                <li>
                    <a href="#">2-level Dropdown <i class="icon-arrow-right"></i></a>
                    <ul class="dropdown-menu sub-menu">
                        <li><a href="#">Action</a></li>
                        <li><a href="#">Another action</a></li>
                        <li><a href="#">Something else here</a></li>
                        <li class="divider"></li>
                        <li class="nav-header">Nav header</li>
                        <li><a href="#">Separated link</a></li>
                        <li><a href="#">One more separated link</a></li>
                    </ul>
                </li>
                <li><a href="#">Another action</a></li>
                <li><a href="#">Something else here</a></li>
                <li class="divider"></li>
                <li class="nav-header">Nav header</li>
                <li><a href="#">Separated link</a></li>
                <li><a href="#">One more separated link</a></li>
              </ul>
            </li>
          </ul>         
        </div><!-- /.nav-collapse -->
      </div>
  </div>
</div>

怎么样:它检查子菜单是否会溢出,并根据子菜单的宽度修改其位置,使其位于另一侧

$('.sub-menu').parent().hover(function() {
    var menu = $(this).find("ul");
    var menupos = $(menu).offset();

    if (menupos.left + menu.width() > $(window).width()) {
        var newpos = -$(menu).width();
        menu.css({ left: newpos });    
    }
});

http://jsfiddle.net/svLKN/4/ http://jsfiddle.net/svLKN/4/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将下拉子菜单保留在屏幕内的 jQuery 解决方案 的相关文章

随机推荐

  • PHP != 和 == 运算符

    这让我困惑了一段时间 我正在运行一个目录并回显其内容 并且我想排除 和 文件 现在 这段代码可以工作 if files scandir temp foreach files as file if file OR file else echo
  • 加密 Android 中的现有数据库

    我已经在 Play 商店中发布了一个应用程序 现在 我想加密应用程序的数据库 我知道 Android 版 SQLCipher 可以为我做到这一点 但问题是我的应用程序已经被很多用户使用 并且他们里面有很多未加密的数据 现在 如何将 SQLC
  • .emacs 中的多个自定义设置面和自定义设置变量?

    当我通过M x customize face菜单并将更改保存到磁盘 Emacs 将自动生成的代码添加到我的 emacs文件看起来像这样 custom set faces custom set faces was added by Custo
  • 将 numpy.array 存储在 Pandas.DataFrame 的单元格中

    我有一个数据框 我想在其中存储 原始 numpy array df COL ARRAY df apply lambda r np array do something with r axis 1 但似乎pandas尝试 解压 numpy a
  • Spark:从逻辑计划中提取数据帧

    这行代码将数据帧转换为逻辑计划 val logical df queryExecution logical 我们可以做相反的事情 即从逻辑计划中提取使用的数据帧吗 在 Dataset 对象中有一个方法 def ofRows sparkSes
  • OAuth2/Google CalDAV - 用户日历列表

    我曾经请求 caldav 服务器为给定用户提供所有定义的日历 这适用于 fruux ownCloud Sabre 以及 GCalendar 的经典方法 请求是这样的 method PROPFIND headers Depth 1 urlst
  • 无法加载文件或程序集“WindowsBase,版本 4.0.0.0”

    今天早上买了一台新机器 然后安装了 Visual Studio 2012 这是我启动时遇到的错误 Microsoft Visual Studio Could not load file or assembly WindowsBase Ver
  • 使用 Active Storage 在 active_admin 中上传多个图像

    我发现有关在 activeadmin 中使用 Active Storage 上传图像的有用文章 https medium com maris cilitis using ruby on rails active storage image
  • css : 对当前和上一个元素的悬停效果

    我有很多无序列表 每个列表有 5 里 ul class Rank li li li li li li li li li li ul 我想改变background color当前的li hover元素和所有之前的元素li该列表中的元素 假设
  • 在 C++ 中定义运算符 **

    如何定义运算符 这样它就可以执行 2 个数字的幂运算 例如2 3 它应该给出答案为 8 或者间接地有什么方法可以通过运算符重载而不是 define宏 你不能 您只能重载现有运算符 而不能重载内置类型
  • 处理 TCP 提供程序:错误代码 0x68 (104)

    我正在使用此代码将我的数据库与客户端同步 import pyodbc SYNC FETCH ARRAY SIZE 25000 define connection cursor connection pyodbc connect cursor
  • Wiremock:如何使用 API 将文件上传到文件夹 __files

    wiremock 的文档说我们可以通过以下代码模拟检索文件的请求 request method GET url body file response status 200 bodyFileName path to myfile xml 但现
  • 在MATLAB中读取带有逗号小数分隔符的txt文件[重复]

    这个问题在这里已经有答案了 我有一个这样的txt文件 1 6 2 6 5 5 1000 columns 0 1 4 2 5 1000 rows 即用 代替 作为小数点分隔符 如何在 MATLAB 中正确读取此内容并输出 1 6 2 6 5
  • maven - 使用 Spring 进行接口和实现的单独模块

    我们正在致力于 Maven 化我们的 java 项目 我们希望在每个模块的接口和实现之间建立一个清晰的分离 为此 我们希望将每个模块分成两个子模块 一个用于它们使用的接口和数据对象 另一个用于实现 例如 commons commons ap
  • 我怎样才能做文本计时器

    我想在用户单击 重新发送 时显示 1 分钟的计时器 Text text Re send modifier Modifier clickable color Color Blue 要创建具有 2 种颜色的文本 您需要 annotatedStr
  • 用嵌套对象展平数组

    我有一个包含对象的数组 可以有子对象 子对象与父对象具有相同的结构 基本上只是对象嵌套 我想知道如何展平对象的结构 以便获得所有对象的 id 包括嵌套对象的 id 例如 这个结构 const data id 2 children id 1
  • 使用注释配置的 Spring 控制台应用程序

    我想创建 spring 控制台应用程序 使用 maven 从命令行运行 例如 mvn exec java Dexec mainClass package MainClass 我想要这个应用程序有某种服务和 dao 层吗 我知道如何为 Web
  • ActiveAdmin 表单不保存嵌套对象

    将 ActiveAdmin 与 Rails 4 结合使用 我有两个模型 Document and Attachment它们之间是一对多的关系 models document rb class Document lt ActiveRecord
  • WooCommerce:根据自定义元值更改订单状态

    我尝试每天运行以下函数 以自动完成超过 10 天且具有特定自定义元值的所有处理订单 我正在使用以下代码片段 但这根本行不通 知道为什么吗 function autoComplete orders wc get orders array st
  • 将下拉子菜单保留在屏幕内的 jQuery 解决方案

    我正在使用 bootstrap 作为我的下拉菜单 但它有一个问题 如果我的下拉菜单有多级子菜单 那么它会显示在屏幕上 并且会出现底部滚动条 如何将子菜单保留在屏幕内 我需要一个 jQuery 解决方案 检查我的屏幕截图 这是操场 http