javascript - 位置 div 取决于距离浏览器边缘(javascript)

标签 javascript positioning tooltip

我正在尝试创建一个主要依赖于 css 的小工具提示脚本。我无法弄清楚的一点是如何根据 div 到浏览器边缘的距离来定位 div。

当 div 出现时,我希望它检查它与顶部、底部、左侧和右侧的距离。例如,如果没有足够的空间来显示工具提示链接上方的 div,则应将其放置在链接下方。

基本上我希望 div 能够“意识到”它的位置并知道去哪里以确保它可见。

谢谢

最佳答案

我只需要自己编写非常相似的代码,用于 tipsy (所以我的解决方案使用 jQuery)。这是基本数学,假设 <div id="mydiv">...</div>是您正在使用的 div。在测量到右边缘和底部边缘的距离时,我也会考虑 div 的高度和宽度。

dTop , dBottom , dLeft , 和 dRight分别是 div 的上边缘、下边缘、左边缘和右边缘到视口(viewport)同一边缘的距离。如果要根据div的左上角进行测量,不要减去dTopdLeft计算时dBottomdRight .

var $doc = $(document),
    $win = $(window),
    $this = $('#mydiv'),
    offset = $this.offset(),
    dTop = offset.top - $doc.scrollTop(),
    dBottom = $win.height() - dTop - $this.height(),
    dLeft = offset.left - $doc.scrollLeft(),
    dRight = $win.width() - dLeft - $this.width();

关于javascript - 位置 div 取决于距离浏览器边缘(javascript),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/503992/

相关文章:

java - GWT 中禁用元素(按钮)的工具提示

javascript - 是否可以将 jQuery 转译为 Vanilla JS?

javascript - 在 Dexie 数据库模式中指定不同的唯一键?

javascript - 如何相对于浏览器窗口定位 DIV?

css - 尝试对齐 div 内的元素

javascript - 如果没有找到内容则隐藏工具提示

jquery - Twitter Bootstrap 工具提示 : flickers when placed on top of button, 但放置在左/右/底部时工作正常

javascript - 如何使用 TypeScript 中的方法动态扩展类?

javascript - 如何在 three.js 中随机化网格上面的大小?

html - 如何将导航栏移动到水平居中?