检测网络下拉菜单是否将显示在屏幕外

2024-03-13

我有一个基于 CSS 的简单多级下拉菜单。第二或第三级可能会超出可见窗口,具有某些分辨率和窗口大小的组合。

如果某些预构建的菜单控件检测到这种情况,它们只会向左而不是向右打开下拉菜单。

我如何测试(使用 JS/jQuery)这种情况?


您可以使用以下函数测试菜单项是否在屏幕外:

/*---   function bIsNodeClippedOrOffscreen returns true if a node
        is offscreen (without scrolling).
        Requires jQuery.
*/
function bIsNodeClippedOrOffscreen (zJnode)
{
    var aDivPos             = zJnode.offset ();
    var iLeftPos            = aDivPos.left;
    var iTopPos             = aDivPos.top;

    var iDivWidth           = zJnode.outerWidth  (true);
    var iDivHeight          = zJnode.outerHeight (true);

    var bOffScreen          = CheckIfPointIsOffScreen (iLeftPos, iTopPos);
    var bClipped            = CheckIfPointIsOffScreen (iLeftPos + iDivWidth, iTopPos + iDivHeight);

    return (bOffScreen || bClipped);
}


function CheckIfPointIsOffScreen (iLeftPos, iTopPos)
{
    var iBrowserWidth       = $(window).width()  - 16;   //-- 16 is fudge for scrollbars, refine later
    var iBrowserHeight      = $(window).height() - 16;   //-- 16 is fudge for scrollbars, refine later
    var bOffScreen          = false;

    if (iLeftPos < 0  ||  iLeftPos >= iBrowserWidth)
        bOffScreen          = true;

    if (iTopPos < 0   ||  iTopPos >= iBrowserHeight)
        bOffScreen          = true;

    return bOffScreen;
}

.
使用示例:

<li id="SomeMenuItem"> Get your shopping cart for free!
...
...

var Node            = $("#SomeMenuItem");

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

检测网络下拉菜单是否将显示在屏幕外 的相关文章

  • html css 下拉菜单

    这是我第一次在 Stack Overflow 上发帖 我不熟悉论坛发帖规定 所以请让我知道我做错了什么 我在论坛中研究过这个问题 但我所遇到的一切都没有给我明确的答案 我试图从 新闻 元素创建一个下拉菜单 但在运行代码时我从未得到任何可见的
  • 为什么将 x 和 y 设置为 0 时 svg 文本会消失?

    我刚刚开始阅读有关svg我提出了以下问题 我正在创建一个简单的svg with a text里面如下图所示 从我的阅读中我了解到x and y of the text标签声明文本在标签内的位置svg space 为什么当我同时设置x and
  • 在 React Navigation 中将 props 传递给自定义抽屉导航器

    在反应导航抽屉菜单中 我想显示用户名 John Doe 它处于我的主要组件的状态 Router 我怎样才能将自定义抽屉内容组件传递给它 额外信息 我从 AsyncStorage 中获取此名称 组件已挂载 这是我的代码 export defa
  • 如何检测元素内容何时发生变化

    我正在寻找一种方法来监视元素内动态填充 无页面重新加载 内容 以便我可以将类添加到另一个元素 到目前为止我有这个 HTML div class message container div class messages error span
  • 使用日期字符串数组在引导日期选择器中设置禁用月份不起作用

    我有一个日期选择器 其配置如下 HTML div class input group date div
  • 引导行之间的垂直间距

    所以我正在研究布局 为了 响应能力 我决定使用 Bootstrap 现在我猜网格系统有问题 我想要的结果如下 1 4 2
  • 即使在包裹后也具有等宽的弹性项目

    是否可以制作一个像这样的纯 CSS 解决方案 物品有一些min width 它们应该动态增长以填充所有容器宽度 然后换行到新行 列表中的所有项目都应具有相同的宽度 现在看起来是这样的 这就是我希望它看起来像的样子 我已经手动管理这些底部项目
  • 计算文本选择的 xy 位置

    我正在尝试使用 DOM 元素创建自己的文本选择 是的 我的意思是当您在此元素中选择文本时 您会在文本后面看到蓝色背景 这个想法是停止默认行为 蓝色 并使用我自己的元素来完成工作 方法是找到选择的 xy 位置 然后放置绝对定位的元素 我希望能
  • 如何在 ASP.NET MVC 3 的 Razor 视图中编码嵌入的 javascript?

    如何在以下上下文中正确编码 JavaScript 我的 JSON 对象中的值是由应用程序管理员设置的 因此我假设它们需要正确编码 对于 HTML 和 JavaScript 都是如此 我在用着System Web Script Seriali
  • 如何在html中制作多行类型的文本框?

  • JavaScript 数组扩展语法的时间复杂度是多少?

    我想知道在 JavaScript 中使用数组扩展的时间复杂度是多少 是线性 O n 还是常数 O 1 下面的语法示例 let lar Math max nums 传播称为 Symbol iterator 有关对象的属性 对于数组 这将迭代数
  • 如何让div与包含td的高度相匹配?

    我沿着桌子的一排布置了三个 面板 一个比另外两个高 我希望所有三个面板都与最高的一个的高度相匹配 我尝试将 div 的样式设置为 height 100 但是即使包含的 tds 增长 短面板仍然很短 我的 HTML 是由 JSF 生成的 因此
  • 使用 AngularJS 多部分表单数据将文件上传到 Google Cloud Storage

    我正在尝试使用 AngularJS 中指定的多部分方法将图像文件上传到 Google Cloud Storagehttps cloud google com storage docs json api v1 how tos upload m
  • php下拉菜单人口

    我正在尝试编写一个 php 脚本 该脚本将根据主下拉菜单的选择填充第二个下拉菜单 我想使用 jquery 来完成所有非页面刷新的事情 但我发现现有的所有东西都很难理解和修改 你知道有什么写得很好且易于理解的东西吗 或者可能是现有的教程 下面
  • mozilla pdf.js 没有全视图

    我喜欢这个 pdf 查看器https github com mozilla pdf js https github com mozilla pdf js Demo http mozilla github com pdf js web vie
  • 将 HTML 表格导出到 Excel

    我在 ASP NET MVC 视图页面上有 HTML 表 现在我必须将该表导出到 Excel 1 我使用部分视图 Inquiries ascx 来显示数据库中的表数据 使用LINQ to Entity 2 我还使用了 UITableFilt
  • 在 HTML5 iOS 7 / iOS 8 中显示十进制键盘

    经过几个小时的搜索后 我只是有一个简单的问题 是否有可能在网络浏览器输入字段中显示小数键盘 input type number 只显示数字 但我需要在左下角使用逗号或点 我尝试过任何事情 pattern step等等 但没有显示十进制键盘
  • HTML 属性 bgcolor 已弃用:用什么代替?

    VStudio ASP NET 给出以下消息 Attribute bgcolor is considered outdated A newer construct is recommended 推荐的结构是什么 bgcolor是在一个 td
  • Flowtype 属性“msg”缺失为 null 或未定义

    我发现 Flow 很难用 我明白那个Array find可以返回或未定义 因此 通过阅读以下内容 github Array find on Array 引发 https github com facebook flow issues 351
  • 使用 JQuery 根据下拉列表选择的值显示/隐藏控件

    我正在尝试使用 JQuery 根据下拉菜单的选定索引显示 隐藏 div 标签 但它不起作用 任何帮助将不胜感激 Thanks

随机推荐

  • C/C++ 中两个字符的总和

    在 C C 中 当我想查找两个字符的总和时 我得到 int 形式的结果 例如 include
  • 如何将用户输入的值附加到 df 的不同列中?

    我正在尝试创建一个df基于用户输入如下 import pandas as pd data pd DataFrame columns ID QTY MOA TAX while True add seg input Do you want to
  • 验证 XSD 架构?

    我正在编写一个 XML 架构 XSD 来描述我们的合作伙伴向我们发送数据时应采用的格式 我很难找到一个可以验证我编写的 XSD 架构文件的工具 到目前为止我发现的最好方法是首先编写一个示例输入 XML 文件 然后尝试验证that与 XSD
  • 如何在reactjs new hook api中进行api调用并跨组件共享?

    如何在新的reactjs hook api中调用rest Api 并使用 useEffect 和 useState 重用数据 我只想跨组件重用数据 import useState useEffect from react export de
  • mysql 按唯一单词匹配的数量排序

    我发现很多问题都要求出现次数 但没有一个问题与我希望的完全一样 动态生成的 准备好的语句 查询将产生如下结果 SELECT FROM products WHERE title LIKE AND title LIKE AND content
  • 更改 Bootstrap Typeahead 的外观

    我一直在尝试使用引导程序进行搜索提前输入 我已经能够得到dropdown list使用 Ajax 但是 我想更改下拉列表的宽度以及其中的填充和基本背景颜色 这是白色的 我该怎么做 另外 我希望它始终显示a gt View All Resul
  • 在 MVC 应用程序中将实体框架数据模型放在哪里?

    让我们考虑默认的 ASP NET MVC 应用程序文件夹结构 它看起来像这样 App data Content Controllers HomeController cs Models AccountModels cs Scripts Vi
  • 是否可以在批处理文件中逐行从管道中读取?

    我想知道是否可以从批处理文件中的管道中读取数据 如果我写 echo Test 我明白 毫不奇怪 Test 那很好 但是如果我想通过管道传输输出并从另一个命令读取它怎么办 echo Test echo 如何通过管道获得与以前相同的结果 谢谢
  • 警告:json_decode() 最多需要 2 个参数,给定 4 个参数

    我尝试像这样使用 json decode json decode string true 100 JSON BIGINT AS STRING 但我收到错误 Warning json decode expects at most 2 para
  • 转换 LOG4J >> SLF4J + logback

    我目前的任务是将所有出现的 LOG4J 更改为 SLF4J 包括必要时的 logback 我已经设法将所有旧的 log4j xml 转换为 logback xml 并强制使用 logback 附加程序 但是 我刚刚发现代码中的一行还无法转换
  • 加载共享库 libresolv.so.2 时出错:没有这样的文件或目录(/lib/libclntsh.so 需要)

    每次我尝试连接到 Oracle DB 时都会收到此错误 DPI 1047 Cannot locate a 64 bit Oracle Client library Error loading shared library libnsl so
  • 关于代码密度作为编程语言能力衡量标准的文章[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我记得看过一篇文章说这样的话 不同的编程语言引入的错误数量差异不大 但很大程度上取决于 SLOC 源代
  • 如何防止 React-native-device-info 导致我的设置出现 React 歧义?

    我在安装时遇到问题react native device info进入现有的反应本机项目 使用创建create react native app然后弹出 I run yarn add react native device info yar
  • Visual Studio 2010 不断改变我的 winforms 控件

    我在 VS 2010 中的用户控件遇到了奇怪的情况 表单设计者不断更改我的条目 然后告诉我它不存在 它第一次编译并运行 然后如果我更改一些不相关的内容 它会在 Designer cs 文件中给出错误 无法解析符号 SomeEntry pri
  • Android 位图、回收和堆碎片

    我有一个应用程序大量使用从 SD 卡读取的位图 我 99 确信如果不回收这些 我的应用程序永远不会被破坏 它们都被分配到 LRU 缓存 公共集合 中 当它们从 LRU 缓存中清除时 该缓存会回收它们 并且我回收剩余的onDestroy 尽管
  • 脚本输出中日期更改的奇怪问题

    我的一位同事编写了一个 Google Apps 脚本来自动化工作流程 批准酒店的客房补偿请求 总的来说 该脚本似乎按预期运行 脚本中有一个按自动计划运行的函数 基于时间 而不是事件驱动 曾有过几次因入住日期晚了一位而导致预订错误的情况 不幸
  • 使用 Xceed PropertyGrid

    我是 C WPF 的初学者 正在尝试使用 Xceed PropertyGrid 他们在他们的网站上展示了一个示例
  • 删除 Woocommerce 中特定产品类别的添加购物车按钮

    我遇到如何从类别产品中删除购物车的问题 如果我将它应用于特定的 ID 或一般情况下的所有 ID 它就可以正常工作 但我无法对类别执行此操作 下面是我对此所做的代码 另外 我正在努力将相同的模式应用到相关文章部分 因此任何帮助将不胜感激 谢谢
  • 如何使用 opencv 和 Python 找到 ROI 内的轮廓?

    我试图找到图像特定区域的轮廓 是否可以只显示 ROI 内的轮廓 而不显示图像其余部分的轮廓 我在另一篇类似的文章中读到我应该使用面具 但我认为我使用得不正确 我对 openCV 和 Python 很陌生 所以非常感谢任何帮助 import
  • 检测网络下拉菜单是否将显示在屏幕外

    我有一个基于 CSS 的简单多级下拉菜单 第二或第三级可能会超出可见窗口 具有某些分辨率和窗口大小的组合 如果某些预构建的菜单控件检测到这种情况 它们只会向左而不是向右打开下拉菜单 我如何测试 使用 JS jQuery 这种情况 您可以使用