【发布时间】:2012-12-11 01:27:37
【问题描述】:
我有一个鼠标悬停工具提示。它存在于多个页面元素上(动态生成,所以我永远不知道会有多少或它们的位置。)
我抱怨说,在分辨率较低的屏幕上,最右侧元素列中的项目的工具提示会跑出屏幕。由于我不知道创建父项时的位置,因此我需要一种方法来检测(在鼠标悬停实际发生之前)工具提示 div 在显示时将部分在屏幕外,并相应地更改 css。
我知道 css 需要是什么;我遇到的问题是检测部分。我见过类似的fewquestions,但解决方案都涉及使用原型或jquery插件。我仅限于这个项目的核心 jquery(或只是普通的 javascript)。
有什么建议吗?
【问题讨论】:
-
每个元素都有一个相对于其父元素的偏移量,并且每个元素都有一个计算宽度(例如它在显示器上的大小)。得到这些,找出元素的右侧边缘相对于显示器的右侧边缘的位置,如果它离开屏幕,则将其推向左侧。
-
我遇到了类似的问题。我最近一直在使用 jQuery UI 中的
position,但目前还没有运气。如果您查看该链接上的示例,您会注意到将橙色 div 移出视图会将其子 DIV 推到右侧。与您和我正在寻找的非常相似... -
@FastTrack - 我在链接到的一个问题中看到了该示例,但它使用的是 jqueryUI。正如我所说,我仅限于核心 jquery - 没有 UI,没有插件。
标签: javascript jquery position positioning