如何在JavaScript中更改引导弹出窗口的颜色
How to change the color of a Bootstrap popover in JavaScript
我有这个JS代码来打开一个popover:
$('a').popover({content: 'Popover text', title: 'Popover'});
$('a').popover('show');
我想更改属性,例如,我希望popover的颜色为浅黄色。有没有一种方法可以在JS代码本身中做到这一点?也许在模板选项中?
您可以使用.popover
、.popover-title
和.popover-content
类使用CSS来完成此操作。
.popover-title{
background: #ffff99;
}
正如其他人所指出的,更改popover颜色的方法是更改.popover
和.popover.right .arrow:after
的CSS。但由于我们希望这种情况动态发生,我们会这样做:
$('.popover').css('background-color', 'red');
$('.popover.right .arrow:after').css('border-right-color', 'red');
但是等等,第二个jQuery片段不对您不能有:after
选择器,因为:after
不是DOM的一部分,因此这个世界上没有任何javascript能够捕获:after
。所以我做了这个CSS。
.popover-danger {
background-color: #d9534f;
border-color: #d43f3a;
color: white;
}
.popover-danger.right .arrow:after {
border-right-color: #d9534f;
}
每当我需要更改popover的颜色时,我都会编写以下jQuery片段:
$('#selector').next('.popover').addClass('popover-danger');
#selector
是应用popover的元素。从该元素中,我搜索下一个.popover
。这确保了我们只处理附加到当前元素的popover。然后我们简单地添加类,这样:after
选择器就可以在没有JS的情况下自然应用。
JSFIDDLE演示。
尝试此代码更改Popover标题栏的背景色和完整的Popover:
$('.popover-title').css("background-color", "#9FC53B");
$('.popover').css("background-color", "red");
javascript:
$('#username').popover({
title: '',
content: 'error!'
});
$('#username').popover('show');
$('.popover').addClass('popover-danger');
html:
<div id="username" class="input-group" data-html="true" data-placement="right">
<span class="input-group-addon width-100 align-right">Username=</span>
<input type="text" class="form-control" title="username" placeholder="Enter username..." v-model='username'/>
</div>
css:
.popover-danger {
background-color: red !important;
border-color: red !important;
color: white !important;
}
自Bootstrap 5.2以来,可以使用CSS变量自定义popover。
new bootstrap.Popover(document.querySelector('[data-bs-toggle=popover]'));
// initialize
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-9ndCyUaIbzAi2FUVXJi0CjmCapSmO7SnpJef0486qhLnuZ2cdeRhO02iuK6FUUVM" crossorigin="anonymous">
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-geWF76RCwLtnZ8qwWowPQNguL3RmwHVBC9FhGdlKrxdiJJigb/j/68SIy3Te4Bkz" crossorigin="anonymous"></script>
<style>
.my-popover {
--bs-popover-bg: lightyellow;
}
</style>
<button class="btn btn-primary"
data-bs-toggle="popover" data-bs-custom-class="my-popover"
data-bs-content="This is the popover content.">
Click for Popover
</button>
相关文章:
- Javascript对象类在单击时打开窗口进行颜色选择,并在更改时替换对象背景颜色
- 如何在提交后关闭颜色框窗口,并刷新父页面上的图像
- 当点击openlayer ballon(弹出窗口)中的图像时,打开颜色框
- 在 html 中,打开一个具有选定背景颜色的新窗口
- 在关闭颜色框时重新加载父窗口
- 关闭标记信息窗口并在单击时更改标记颜色
- 使用颜色框在弹出窗口中加载外部网站
- 信息窗口文本颜色更改
- 更改窗口滚动时的文本颜色
- 隐藏或删除在下拉列表中选择后在颜色框弹出窗口上的复选框
- 从文本字段输入的数据更改窗口的背景颜色
- 关闭“颜色框”并将父窗口重定向到特定 URL
- 如何显示两个颜色框(弹出窗口)
- 如何使用jQuery中的弹出窗口关闭颜色框窗口
- 如何在JavaScript中更改引导弹出窗口的颜色
- 引导程序:如何更改菜单项的颜色由于模式窗口关闭
- 如何仅在激活颜色框弹出窗口时加载内容
- 如何在弹出窗口中显示带有颜色框的页面的特定部分而不显示整个页面?
- 如何改变一个jQuery验证弹出窗口的颜色
- 如何在Scheduler弹出窗口中检索Events的颜色?