Bootstrap弹出框(Popover)被挤压的问题

比较了下Bootstrap的popover和一些其它的开源项目,觉得Bootstrap的还算不错。没想到第一次就遇到了一个问题。

弹出框显示的时候如果贴近一个列的边沿,就会很窄,如果一个列比较宽还好,而如果遇到这样的列比如:

,几乎任意位置显示的弹出框都被挤压了。

先看看我的实现以及效果:

js:

$(function (){
    $("\[data-toggle='popover'\]").popover({
        trigger: 'hover'
    });
});

html:

<div class="col-md-1">
 ...
 <img src="..." width="50" height="50" data-toggle="popover"   data-content='...'  title="..."  />
 ...
</div>

效果

F92657E0-9CEB-474C-821F-648273495C01.png

不过解决起来很简单,只需在初始化的时候添加一个container属性就可以了:

$(function (){
    $("\[data-toggle='popover'\]").popover({
        trigger: 'hover',
  	container: 'body'
    });
});

我们把容器设置成整个页面的body,这样popover就有足够宽的地方了。

1C8A50ED-88B6-44AB-928B-DE0911386A60.png

实际上在官网上对container的作用是有说明的地址  ,只是没有注意到:

Appends the popover to a specific element. Example: container: 'body'. This option is particularly useful in that it allows you to position the popover in the flow of the document near the triggering element - which will prevent the popover from floating away from the triggering element during a window resize.