绝对div覆盖iframe边框?

2023-12-14

我想知道是否有一种方法可以让一个绝对定位的 div 悬停在 div 所在的 iframe 的边框上。这可以做到吗?

我的情况: 我有一个 iframe,其中包含文件列表,每个文件的右端有一个按钮。我想要一个带有一些功能(如上下文菜单)的 div 弹出窗口。但因为这个按钮位于 iframe 的边缘,所以绝对定位的 div 被放置在 iframe 视口的后面/外部。我希望它覆盖在 iframe 之外的文档的其余部分中。

​<iframe width="100" height="100">
div would be in here, say 300 x 100 px.
</iframe>
overlayed div should be visible here as well, basically the div should overlay the iframe.​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​

嗯,从技术上来说你不能这么做。但是,如果您劫持 iframe 中的事件,则可以在主窗口中重新创建上下文菜单,并使用 iframe 内 div 的相对位置 + iframe 本身的绝对位置。

因此,总而言之,上下文菜单可以位于 iframe 外部,并由 iframe 内的事件进行操作。

让我向您展示如何做到这一点。我没有你的代码,所以我只是做一个非常粗略的概念证明。 :)

Example | Code

HTML

<iframe id='my_frame'></iframe>

<div id='copy_to_frame'>
    <ul id='files_list'>
        <li>data.dat</li>
        <li>manual.html</li>
        <li>readme.txt</li>
        <li>model1.obj</li>
        <li>human_model.obj</li>
    </ul>
</div>

<div class='context_menu'>
    <ul>
        <li>Delete</li><li>Open</li><li>Move</li><li>Copy</li>
    </ul>
</div>

JavaScript

//Declare the necessary variables, good practice
var frame = $("#my_frame"),
    frame_contents = frame.contents(),
    frame_body = frame_contents .find("body"),
    copy_list = $("#copy_to_frame"),
    context_menu = $(".context_menu");

var bInside = false;

//Fill the iframe with a list
frame_body.html(copy_list.html());
copy_list.hide();
paint();

//Attach event handler for context menu popup etc.
$("#files_list li", frame_body).click(function(e){
    var $this = $(this);
    var rel_x = $this.position().left + $this.outerWidth() + 5,
        rel_y = $this.position().top + $this.outerHeight()/2 - context_menu.outerHeight()/2 - frame_body.scrollTop(),
        abs_x = frame.offset().left,
        abs_y = frame.offset().top;

    e.stopPropagation();

    context_menu.css({
        top: rel_y + abs_y,
        left: rel_x + abs_x
    });

    //Show the context menu in this window
    context_menu.show();
    paint($this);
});

//Hide when clicking outside the context menu
$(document).add(frame_body).click(function(){
    if(!bInside){
        context_menu.hide();
        paint();
    }
});

//Determine if mouse is inside context menu
context_menu.mouseenter(function(){
    bInside = true;
}).mouseleave(function(){
    bInside = false;
});

function paint(el){
    $("#files_list li", frame_body).css({
        "background-color": "white",
        "border": "1px solid transparent"
    });

    if(el){
        el.css({
            "background-color": "#ddecfd",
            "border": "1px solid #7da2ce"
        });
    }
}

CSS

#my_frame{
    position: absolute;
    border: 1px solid gray;
    width: 200px;
    height: 100px;
    top: 50%; left: 50%;
    margin-top: -62.5px;
    margin-left: -100px;
    z-index: 1;
}


.context_menu{
    display: none;
    position: absolute;
    top: 0;
    left: 0;
    background-color: white;
    z-index: 2;
}

.context_menu ul{
    border: 1px solid black;
    border-right: 0;
    display: inline-block;
}

.context_menu li{
    display: inline-block;
    border-right: 1px solid black;
    padding: 2px;
    text-align: center;
    margin: 0px;
    cursor: default;
}

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

绝对div覆盖iframe边框? 的相关文章

  • 为什么缓慢的 jQuery 动画会断断续续?

    我很难在谷歌上搜索这个问题 因为我能找到的大多数内容都是关于动画的 这些动画应该很快 但表现得很慢 我的问题是关于我想要持续时间较长但仍然流畅的动画 我创建了这个 jsfiddle 来演示这个问题 http jsfiddle net 93B
  • Flexbox 中的 Bootstrap 列无法在较小的屏幕上换行

    我的网站有一个部分 我在 2 个 div 上使用下面的 CSS 其中一个a标签以使内容在中心垂直对齐 问题是 使用 Flex 样式属性时 理想情况下 当窗口 col md 4会一个一个地堆叠起来 这并没有发生 相反 列变得非常瘦并且仍然并排
  • 使用canvas.toDataURL时如何设置crossOrigin属性?

    因此 我尝试为我正在构建的 OpenLayers 3 应用程序创建打印地图函数 我知道他们example http openlayers org en v3 8 2 examples export map html但每当我尝试使用它时 我都
  • 使用 twitter-bootstrap 时使文本区域缩放到网页

    我正在尝试根据页面大小调整文本区域的比例 即我试图使文本区域填充第二个容器和页脚之间的空间 HTML
  • 将选定的日期值从 datepicker 传递到 php

    我在这里发现了类似的问题 但大多数解决方案对我不起作用 我有一个带有日期选择器的表单 我想将所选日期传递到我的 php 文件 但它似乎不起作用 我的 html 是这样的
  • 窗口缩放:网站大小问题和 html 初始缩放值被忽略

    在 Windows 10 上 缩放默认设置为 125 会导致网站大小调整问题 因此我在 Ubuntu 上复制了增加缩放的问题 我试图修复大小改变initial scale以这种方式值 document querySelector meta
  • 在表单中突出显示选定的图像 - 使用 Jquery?

    我在谷歌上搜索了答案 但发现什么也没有 所以即使是一个显示如何执行以下操作的页面的链接也将不胜感激 基本上我有一个只有图像的表格
  • 使用普通的旧 JS 动态渲染 DOM 元素的好方法是什么?

    我面临的挑战是使用普通的旧 Javascript 构建一个单页应用程序 不允许使用任何库或框架 虽然在 React 和 Angular 中创建动态 DOM 元素相当简单 但我提出的普通 JS 解决方案似乎很笨重 我想知道是否有一种特别更简洁
  • 使 Knockout applyBindings 将选择选项视为数字

    我将 Knockout 与 html select option 结合使用 请参阅Fiddle http jsfiddle net hf5gb
  • 如何为 p 标签中的星号第一个字符着色

    我认为这会很容易使用 first letter伪元素 但它不起作用 I have p Required Fields p 我希望 是红色的 有任何想法吗 请注意 我无法更改 html http jsfiddle net 3ducS http
  • HTMLPanel 中的 JavaScript

    我想在 HTMLPanel 元素中包含 Javascript 代码 但它不起作用 请你帮助我好吗 提前致谢 脚本 pro js alert hello 使用 HTMLPANEL 不起作用 不显示警报 我认为应该是相反的 HTMLPanel
  • 尝试制作Linux终端但失败

    这可能是一个愚蠢的问题 可能很容易找到 但我对这一切都很陌生 我似乎找不到我要找的东西 或者至少我不知道我需要寻找什么 所以我在这里 所以我想做的是创建一种 Linux 终端 这就是我到目前为止所得到的 我所坚持的是实际输入文本部分 我一直
  • 分页后重新显示当前标题

    我正在使用 Wea syPrint 创建文档 我有一些带有名称的部分 其中一些可能跨越多个页面 当节太长时 就会出现分页符 我想做的是重新显示当前部分的名称 最好使用相同的格式 以下 MWE 显示了分页符后如何不显示节标题 h1 First
  • img设置flex-grow来填充flex容器剩余空间,它会导致flex内部溢出flex容器[重复]

    这个问题在这里已经有答案了 以下是我的代码 text1 溢出 Flex 容器 我期望 Flex 容器中的 img 文本和 img 填充 Flex 容器其余部分
  • 从 PDF 转换为 HTML [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 嵌套最小高度不起作用

    我有一个固定大小的绝对定位区域 其中滚动条包含可变大小的内容 现在我需要将内容包装在两个 div 中 这两个 div 至少与区域一样大 但会扩展以适合内容 div div div div content div div div div 要求
  • 样式表何时添加到 document.styleSheets

    我正在尝试使用 javascript 动态添加 css 样式表规则 例如示例 2here https developer mozilla org en DOM CSSStyleSheet insertRule 它在大多数情况下都有效 但似乎
  • IE8 中的 CSS 属性选择器错误?

    指定为CSS 2 1 http www w3 org TR CSS2 selector html attribute selectors input type submit or input type submit 必须匹配 type 属性
  • 如何覆盖 CSS 模块文件中的全局 CSS?

    让我们说在我的global css我有一个 Next js 项目的文件 flex display flex justify content center align items center height 100 我也有一个Layout j
  • CSS,堆叠圆圈

    我想制作一些圆形 div 就像下面代码中的那样 不过 我希望它们彼此堆叠在一起 所以我想要一个蓝色圆圈 展开 在当前红色圆圈后面 但中心与红色圆圈相同 红色的必须在上面 这是我当前的代码 circles margin right auto

随机推荐

  • 如何写一个简单的PHP透明代理?

    我需要制作一个代理脚本 可以访问隐藏在登录屏幕后面的页面 我不需要代理来 模拟 登录 而是应该正常向用户显示登录页面 HTML 并且所有 cookie 和 HTTP GET POST 数据都通过代理流向服务器 因此登录应该是真正的 我不需要
  • 纯JavaScript监听输入值变化

    有没有办法创建一个常量函数来监听输入 以便当输入值发生变化时 立即触发某些内容 我正在寻找使用纯 JavaScript 的东西 没有插件 没有框架 而且我无法编辑 HTML 例如 当我更改输入中的值时MyObject 该函数运行 这是什么e
  • CSS:如何设置相对于父高度的图像大小?

    我试图弄清楚如何重新调整图像的大小 使其保持宽高比 但会重新调整大小 直到图像的高度与包含的 div 的高度相匹配 我有这些又大又长的图像 屏幕截图 我想将它们放入 200 像素宽 180 像素高的 div 中进行显示 而无需手动调整图像大
  • 从字符串中删除一个字符

    我有一根绳子 如果字符串的最后一个字符是空格 我想删除它 我尝试了以下代码 str erase remove if str begin str end isspace str end 但我的 g 编译器给了我一个错误 error no ma
  • 如何处理socket程序中的连接重置错误

    我写了一个程序 如下所示 它接受来自客户端的一些数据并返回成功响应 有时它会抛出连接重置错误 并且由于某些套接字连接仍然未关闭结果 当客户端代码尝试通信且连接被客户端自动关闭时 知道如何处理连接重置错误吗 import java net i
  • 在 bash、R、python、cdo 或 NCL 中将 hdf5 转换为 netcdf4?

    有没有一种快速简单的方法可以从 bash 命令行将 HDF5 文件转换为 netcdf 4 或者一个简单的脚本可以在 R cdo NCL 或 python 中自动处理此类转换 使用 netcdf c 库 您可以 nccopy in h5 o
  • Xcode、UIscrollView 和分页

    我是初学者 我需要知道如何在 UIScrollView 中放入多个页面 这些页面应包含交互元素 例如按钮 视频以及文本和图像 如果您能给我任何教程链接或一些线索 我将不胜感激 Regards 设置你的滚动视图pagingEnabled财产给
  • 在 group_concat 中包含空结果

    我有两张这样的桌子 个人资料 答案 id class name 1 Class 1 2 Class 2 3 Class 1 教育 id profile answers id sample 1 1
  • 如何设置docker容器的ip?

    有人可以告诉我如何将容器的 ip 设置为特定的 ip 吗 我不想将网桥设置为 IP 集 我在网络中得到的所有结果都是将 ips 范围设置为 docker 桥 您可以使用主机的现有 IP 如下所示 docker run p 127 0 0 1
  • 加速此循环以使用 data.table 创建虚拟列并在 R 中设置[重复]

    这个问题在这里已经有答案了 我有一个数据表 我想为每个唯一的日期创建一个新列 然后在该日期与列名称匹配的每一行中分配一个 1 我已经使用 for 循环完成了此操作 但我想知道是否有任何方法可以使用 data table 和 set 来优化它
  • 使用 PushBots 进行 Android 推送通知

    我正在尝试使用 Pushbot 进行 Android 推送通知 如果应用程序运行时它工作正常 但例如 如果应用程序未运行并且推送通知到达 它会启动应用程序然后使其崩溃 对这个问题的原因有什么建议吗 确保 您已将 PushBots jar 文
  • 如何在ZF表界面中进行连接查询?

    我的数据库和表如下所示 替代文本http img15 imageshack us img15 2568 stackdijag png 我想要做的是获取制造商名称列以 A 开头的所有型号 这意味着查询的简单部分应该类似于 manufactur
  • OpenMP 线程团队跨功能的持久性

    我有一个用于物理模拟的简单程序 我想知道如何在 OpenMP 中实现某种线程范例 int main define steps 100000 for int t 0 t lt steps t firstParallelLoop secondP
  • 如何创建脏标志功能

    我想使用淘汰赛创建脏标志功能 我想仅在某些内容发生更改时才启用保存按钮 我的视图和视图模型与 Knockout js 教程加载和保存数据中的示例完全相同 教程链接 我正在关注 Ryan 发布的小提琴示例here 我无法理解在哪里声明他在视图
  • 将变量传递给不同的视图控制器

    我搜索了又搜索 但没有任何效果 我试图将文本框中的文本值设置为字符串或其他内容 以便稍后在不同的视图控制器中调用它 我似乎无法让它发挥作用 我还希望保留数字 例如货币 对他们有什么想法吗 Cheers 您可以在推送 弹出视图之前使另一个视图
  • 无法在我的 angular-2 快速入门应用程序中加载 ng2-fullpage

    我正在尝试使用整页 angular2 我不知何故无法加载 ng2 fullpage 包来使用 以下是我的文件 系统js config js function global System config paths paths serve as
  • 背景图像的不透明度动画

    我目前正在尝试让 InnerImage 的背景图像淡出 这是 InnerImage 的代码 div style background image none background position none 这是我正在使用的代码 OuterI
  • docker-compose java应用程序连接到mongodb

    2 个容器 一个 Java 应用程序和第二个 mongodb 如果我在本地运行 java 应用程序并在容器中运行 mongodb 它会连接 但如果两者都在容器内运行 则 java 应用程序无法连接到 mongodb docker compo
  • 如何创建不规则形状的图像按钮,其中图像的透明部分不可点击?

    我有一个不规则形状的 PNG 图像 例如角是透明的圆形图像 如何创建该图像的图像按钮并且不让角落可触摸 如果可能的话 我可能想创建其他不规则形状的图像按钮 查看第二个答案这个问题 我相信这正是您所需要的 稍后编辑 快速总结 Use a To
  • 绝对div覆盖iframe边框?

    我想知道是否有一种方法可以让一个绝对定位的 div 悬停在 div 所在的 iframe 的边框上 这可以做到吗 我的情况 我有一个 iframe 其中包含文件列表 每个文件的右端有一个按钮 我想要一个带有一些功能 如上下文菜单 的 div