Bootstrap popover弹出框

时间:2023-03-08 17:57:01

popover被挤压、遮挡的问题:

  弹出框显示的时候如果贴近一个列的边沿,就会很窄或被遮挡,解决起来很简单,只需在初始化的时候添加一个container属性就可以了:

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

用法:1、bootstrap.js或bootstrap.min.js;2、jQuery.min.js;3、bootstrap.min.css引入三个文件

bootstrap官方说明:http://v3.bootcss.com/javascript/#popovers

一、popover常用配置参数:

JS方式:

//常用配置参数:
$(document).ready(function() {
$('#temp').popover({
trigger:'hover', //触发方式
template: '', //你自定义的模板
title:"标题",//设置弹出框的标题
html: true, // 为true的话,data-content里就能放html代码了
content:"",//这里可以直接写字符串,也可以是一个函数,该函数返回一个字符串;
});
}
//常用方法:
$('#element').popover('show');
$('#element').popover('hide');
$('#element').popover('destroy');

html方式:

<a tabindex="" class="btn btn-lg btn-danger" role="button" data-toggle="popover" data-trigger="focus" title="Dismissible popover" 
data-content="And here's some amazing content. It's very engaging. Right?">可消失的弹出框</a>

二、属性方法:

Bootstrap  popover弹出框

Bootstrap  popover弹出框

Bootstrap  popover弹出框

Bootstrap  popover弹出框

popover调用示例如下:

//简单调用
$(".js-btn-top").popover({
placement:"top", //定位方向
title:"jquery插件", //如果不需要标题就不要配置这个选项
content:"内容:建站"
}); //html:true会解析html标签
$(".js-btn-bottom").popover({
trigger:"focus", //如果设为focus 当按钮失去焦点提示层会消失,例如页面空白处单机提示层消失
placement:"bottom",
html:true,
content:'<p style="width: 500px;">html:true会解析html标签哦,<a href="http://www.51xuediannao.com/" target="_blank">建站</a></p><p>你也试试吧!</p>'
}); //事件其实就是一些回调一样的东西,比如隐藏事件hidden,在提示层完全隐藏的时候会触发里面的处理逻辑
$(".js-btn-bottom").on('hidden.bs.popover', function () {
// 执行一些动作...
//这里面的this就是点击的按钮自身
alert();
})

案例分析:

  动态产生一个按钮,并给页面中所有具有data-toggle="popover"属性的元素绑定popover(弹出框)效果,

  触发方式:当鼠标指针放到元素上时,弹出弹出框,离开元素时,弹出框消失;弹出框内容要求:一定要包含该触发弹窗元素的文本信息;

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title></title>
<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
<script type="text/javascript" src="bootstrap/bootstrap.min.js"></script>
<link rel="stylesheet" type="text/css" href="bootstrap/bootstrap.min.css">
</head>
<body>
<div id="main">
<a id="temp1" tabindex="" class="btn btn-lg btn-danger" role="button" data-toggle="popover" title="Dismissible popover">弹出框1</a>
<a id="temp2" tabindex="" class="btn btn-lg btn-danger" role="button" data-toggle="popover">弹出框2</a>
<div id="LinkDIV" style="float:left;width:200px"></div>
</div>
<style type="text/css">
.popover{
max-width: 2000px;/*popover有默认最大宽度276px,所以需要重写下*/
}
</style>
<script>
$(function () {
$("#LinkDIV").html('<button type="btn btn-lg btn-primary" data-toggle="popover" id="temp3">弹出框3</button>');
$('[data-toggle="popover"]').each(function () {
var element = $(this);
var txt = element.html();
element.popover({
trigger: 'hover',
placement: 'bottom', //top, bottom, left or right
title: txt,
html: 'true',
content: ContentMethod(txt)
})
});
});
function ContentMethod(txt) {
return '<table class="table table-bordered"><tr><td>' + txt + '</td><td>BB</td><td>CC</td><td>DD</td></tr>' +
'<tr><td>' + txt + '</td><td>BB</td><td>CC</td><td>DD</td></tr>' +
'<tr><td>' + txt + '</td><td>BB</td><td>CC</td><td>DD</td></tr>'+
'<tr><td>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA</td><td>BB</td><td>CC</td><td>DD</td></tr></table>';
}
</script>
</body>
</html>

效果图:html结构中的属性的值优先于JS函数中的值。

Bootstrap  popover弹出框