jquery - 根据弹出窗口相对于窗口边缘的 X 位置更改 Bootstrap 弹出窗口的位置?

标签 jquery twitter-bootstrap offset popover

我广泛搜索了互联网,发现这篇 stackoverflow 帖子很有见地 Is it possible to change the position of Bootstrap popovers based on screen width? ,它仍然没有回答我的问题,可能是因为我无法理解位置/偏移量。

这就是我想要做的。我希望 Twitter Bootstap Popover 位置是 RIGHT 除非热点 popover 将位于视口(viewport)之外,然后我希望它位于 LEFT。我正在制作一个具有热点的 iPad 网络应用程序,当您按下热点时,会出现信息,但我不希望它在水平滚动被锁定时出现在视口(viewport)之外。

我想它会是这样的:

$('.infopoint').popover({
        trigger:'hover',
        animation: false,
        placement: wheretoplace 
    });
    function wheretoplace(){
        var myLeft = $(this).offset.left;

        if (myLeft<500) return 'left';
        return 'right';
    }

想法?谢谢!

最佳答案

我刚刚注意到 placement 选项可以是一个字符串 或一个返回字符串的函数,它会在您每次点击时进行计算在可弹出链接上。

这使得在没有初始 $.each 函数的情况下复制您所做的事情变得非常容易:

var options = {
    placement: function (context, source) {
        var position = $(source).position();

        if (position.left > 515) {
            return "left";
        }

        if (position.left < 515) {
            return "right";
        }

        if (position.top < 110){
            return "bottom";
        }

        return "top";
    }
    , trigger: "click"
};
$(".infopoint").popover(options);

关于jquery - 根据弹出窗口相对于窗口边缘的 X 位置更改 Bootstrap 弹出窗口的位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25610619/

相关文章:

javascript - 理解 javascript 中的位运算

javascript - 如何让 Bootstrap Toasts 不自动消失?

html - 如何将面包屑中的文本大写?

javascript - JQuery 遍历字符串的出现次数

javascript - 有没有办法等待 AJAX 响应并停止执行?

javascript - e.PreventDefault 未定义

javascript - 独立且单独地发送和插入每个类容器值。如何?

twitter-bootstrap - 使用 ES6 导入加载 Bootstrap 的最佳方法是什么?

c - 在C中,如何找到数组中元素的偏移量

如果页面向下滚动到类名,jQuery 会执行某些操作