javascript - 打开相对于鼠标位置的 CSS3/HTML5 模态对话框

标签 javascript html css

我使用 CSS3 创建了一个模态对话框,它工作得很好。但是我的网站是响应式的,模式必须出现在 iframe 内的几个元素上(参见此处:http://labs.tageswoche.ch/interaktives/filmPortraits/ 和此处:http://master.tw.felix.sourcefabric.net/de/2014_11/international/652865/Drei-Jahre-B%C3%BCrgerkrieg-und-kein-Ende-in-Sicht.htm)。在 iframe 中它不起作用,但它在真实站点上按预期工作。

模态对话框是在前两张图片上实现的。

这里是代码:

.modalDialog {
position: fixed;
font-family: Arial, Helvetica, sans-serif;
top: 0;
right: 0;
bottom: 0;
left: 0;
background: rgba(0, 0, 0, 0.8);
z-index: 99999;
opacity:0;
-webkit-transition: opacity 400ms ease-in;
-moz-transition: opacity 400ms ease-in;
transition: opacity 400ms ease-in;
pointer-events: none;
}
.modalDialog:target {
opacity:1;
pointer-events: auto;
}
.modalDialog > div {
width: 400px;
position: relative;
margin: 10% auto;
padding: 5px 20px 13px 20px;
border-radius: 10px;
background: #fff;
background: -moz-linear-gradient(#fff, #999);
background: -webkit-linear-gradient(#fff, #999);
background: -o-linear-gradient(#fff, #999);
}
.close {
background: #606061;
color: #FFFFFF;
line-height: 25px;
position: absolute;
right: -12px;
text-align: center;
top: -10px;
width: 24px;
text-decoration: none;
font-weight: bold;
-webkit-border-radius: 12px;
-moz-border-radius: 12px;
border-radius: 12px;
-moz-box-shadow: 1px 1px 3px #000;
-webkit-box-shadow: 1px 1px 3px #000;
box-shadow: 1px 1px 3px #000;
}
.close:hover {
background: #00d9ff;
}

这是我用来实现模式对话框的 jsfiddle:

http://jsfiddle.net/kumarmuthaliar/GG9Sa/1/

我想要实现的是模态框出现在鼠标点击(或或多或少)的位置,以便在移动设备上也出现在墙上的最后一张图像上。现在模态出现在顶部。我该如何实现?我不知道。

最佳答案

关于您的设计,我想说的一件事是,不要为每个人的模态制作单独的模态窗口 html,使用一个模态并在您单击不同的人时更改其 innerhtml,这样您可以编写更少的代码,更易于维护(如果您对模态进行更改,则在一个位置进行一项更改等)

另外,模态窗口的本质是,它有一个半透明的背景,模态窗口 float (不在 css 上下文中)在它的中间。

如果你在下面看到这个 css 位,你会更好地理解:

.modalDialog > div {
width: 600px;
position: relative;
margin: 5% auto;
padding: 5px 20px 13px 20px;
background: #fff;
}

显示“ margin :5% 自动;”的位导致这种行为,你需要做的是将其更改为设置填充的相同符号,并为图像的每个位置赋予它特定的值,即 margin: 10px 10px 对于仅显示在左上角的模态窗口如果您对鼠标的确切位置不是太挑剔的话,可以选择窗口等。

如果你是,那么使用宽度/高度等于包含的每个人图像的整体大小的最外层背景 div 的“onclick”事件,而不是使用事件对象获取鼠标位置值(阅读此链接 http://www.w3schools.com/jsref/event_clientx.asp )

我不是为你写的,所以你可以自己做和学习,希望这对你有帮助!

关于javascript - 打开相对于鼠标位置的 CSS3/HTML5 模态对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29496290/

相关文章:

jquery - 图像裁剪脚本无法实时运行

html - CSS JSP - 下拉菜单在子菜单焦点上保持打开

javascript - 测试 JavaScript 图表

javascript - 将垂直轮播(桌面)切换为移动中的水平轮播

javascript - 如何在没有 Ajax 的情况下将拖放图像提交给 servlet?

php - 如何在 HTML 文件中运行 PHP 脚本?

html - Bootstrap 字体文件夹

css - 无法将 Bootstrap 样式应用于 ASP :Button within Sharepoint

javascript - cytoscape.js 中的动态节点内容(标签)

javascript - Android - Webview(kitkat 及以下): Error In Java Script Function 'includes'