如何在鼠标单击位置打开弹出框

Posted

技术标签:

【中文标题】如何在鼠标单击位置打开弹出框【英文标题】:How to open a popover on the mouse click location 【发布时间】:2013-02-05 14:15:50 【问题描述】:

我已经在我的 html 页面上加载了一个图像,我想在鼠标单击位置上从 Twitter Bootstrap 打开一个弹出窗口。 到目前为止,我所做的是打开图像侧面的弹出框。但我真正想做的是在我点击图像的任何地方打开弹出框。

我怎样才能做到这一点?

【问题讨论】:

到目前为止你尝试过什么?任何示例代码都将帮助其他人回答您的问题。 【参考方案1】:

您需要获取鼠标坐标并让您的脚本使用它们在单击时定位弹出框。如果您使用的是 jQuery,这可能会有所帮助:

$('#yourimage').click(function()
      $('#popover').css('left', pageX-(popover width)+'px');
      $('#popover').css('top', pageY-(popover height)+'px');
)

---编辑---

Here's a demo 你所追求的。

【讨论】:

另外,您需要将position:absolute 设置为您的#popover position:absolute 已经在主引导 css 文件中设置,不需要在新样式中再次设置,因为位置元素只会重置后面提到的那些 我没有你的 CSS 的图片,所以我只是确保你设置正确。 @SE_User 记住条件语句if (stageWidth - left < theWidth),您可以调整每种情况的定位规则,例如滚动时、高度不适合窗口时等。逻辑很漂亮简单的。试试看…… 哦,好的。感谢您的提醒! @otinanai :)【参考方案2】:

使用您选择的坐标尝试重写 .popover 类

.popover 
top: 20px !important;/*put your position */
left: 20px !important;/*put your position*/

只需重置位置元素即可在主 bootstrap.css 中保持所有其他样式不变。

【讨论】:

是的,但是根据鼠标点击的位置,我该怎么做呢?我应该把这段代码放在一个 .js 文件中

以上是关于如何在鼠标单击位置打开弹出框的主要内容,如果未能解决你的问题,请参考以下文章

在程序集中的特定位置测试鼠标单击

出现上下文菜单时如何获取鼠标位置?

DelPhi怎样模拟鼠标单击?

如何在鼠标移入之前保持 Twitter Bootstrap Popover 打开?

在打开的cv c ++中单击鼠标右键时如何从视频中捕获图像

如何通过鼠标单击在 QGraphicsView 中选择位置并添加项目?