如何使popover底部div不会超出右侧的弹出框按钮,如图中所示:
这是我的代码。
HTML:
<a href="#" tabindex="0" class="btn btn" role="button" data-toggle="popover" data-trigger="focus" data-content="<input>">
Search
</a>
使用Javascript:
$('[data-toggle="popover"]').popover({
trigger: 'manual',
placement: 'bottom',
html: true
}).click(function (e) {
e.preventDefault();
$(this).popover('show');
});
Bootply:
http://www.bootply.com/3SLzUgPyrV
答案 0 :(得分:10)
您可以尝试这样的方法并根据您的要求进行调整:
1。)通过CSS设置箭头的位置:
.popover.bottom .arrow {
left:90% !important;
}
2。)在click事件后设置popover的位置。使用您的代码示例,它可能如下所示:
$('[data-toggle="popover"]').popover({
trigger: 'manual',
placement: 'bottom',
html: true
}).click(function (e) {
e.preventDefault();
// Exibe o popover.
$(this).popover('show');
$('.popover').css('left', '63px');
});
答案 1 :(得分:2)
使用Bootstrap v4,您可以使用Tether提供的'offset'属性:
// Enable all popovers and tooltips
$('[data-toggle="popover"]').popover({
html: true,
offset: '0 100px' //offset the popover content
});
这将抵消弹出窗口内容,但您仍需要使用CSS来偏移箭头
答案 2 :(得分:1)
我这样做的方法是使用insert.bs.popover事件并在那里设置偏移量,因为直到那时为止弹出窗口的宽度都是未知的。这会将弹出窗口对齐到控件的左侧:
var elWidth = inputElement.width();
inputElement.popover({
container: 'body',
animation: true,
content: Msg,
placement: 'top',
trigger: 'hover'
}).on('inserted.bs.popover', function (e) {
var id = $(this).attr("aria-describedby");
var popover = $("#" + id);
popover.data()['bs.popover'].config.offset = parseInt((popover.width() - elWidth) / 2, 10) + 'px';
});
答案 3 :(得分:1)
可以使用bottom-end
位置使弹出框相对于父元素的右下角对齐。但是,Bootstrap弹出窗口不支持该功能。您需要通过以下方式通过popperConfig
选项将其传递给Popper:
$('[data-toggle="popover"]').popover({
// ...
popperConfig: {
placement: 'bottom-end',
},
});
所有受支持的展示位置变体是:
top-start
top-end
bottom-start
bottom-end
left-start
left-end
right-start
right-end