<tr>
<td>template</td>
<td>string</td>
- <td><code>'<div class="popover" role="tooltip"><div class="popover-arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'</code></td>
+ <td><code>'<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'</code></td>
<td>
<p>Base HTML to use when creating the popover.</p>
<p>The popover's <code>title</code> will be injected into the <code>.popover-title</code>.</p>
<p>The popover's <code>content</code> will be injected into the <code>.popover-content</code>.</p>
- <p><code>.popover-arrow</code> will become the popover's arrow.</p>
+ <p><code>.arrow</code> will become the popover's arrow.</p>
<p>The outermost wrapper element should have the <code>.popover</code> class.</p>
</td>
</tr>
<!-- Generated markup by the plugin -->
<div class="tooltip tooltip-top" role="tooltip">
- <div class="tooltip-arrow"></div>
+ <div class="arrow"></div>
<div class="tooltip-inner">
Some tooltip text!
</div>
<tr>
<td>template</td>
<td>string</td>
- <td><code>'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>'</code></td>
+ <td><code>'<div class="tooltip" role="tooltip"><div class="arrow"></div><div class="tooltip-inner"></div></div>'</code></td>
<td>
<p>Base HTML to use when creating the tooltip.</p>
<p>The tooltip's <code>title</code> will be injected into the <code>.tooltip-inner</code>.</p>
- <p><code>.tooltip-arrow</code> will become the tooltip's arrow.</p>
+ <p><code>.arrow</code> will become the tooltip's arrow.</p>
<p>The outermost wrapper element should have the <code>.tooltip</code> class.</p>
</td>
</tr>
}
},
onCreate : (data) => {
- this._handlePopperPlacementChange(data)
+ if (data.originalPlacement !== data.placement) {
+ this._handlePopperPlacementChange(data)
+ }
},
onUpdate : (data) => {
this._handlePopperPlacementChange(data)
}
_handlePopperPlacementChange(data) {
- if (data.originalPlacement !== data.placement) {
this._cleanTipClass()
this.addAttachmentClass(this._getAttachment(data.placement))
- }
}
// static
@include border-radius($border-radius-lg);
@include box-shadow($popover-box-shadow);
+ // Arrows
+ //
+ // .popover-arrow is outer, .popover-arrow::after is inner
+
+ .arrow::before,
+ .arrow::after {
+ position: absolute;
+ display: block;
+ width: 0;
+ height: 0;
+ border-color: transparent;
+ border-style: solid;
+ }
+
+ .arrow::before {
+ content: "";
+ border-width: $popover-arrow-outer-width;
+ }
+ .arrow::after {
+ content: "";
+ border-width: $popover-arrow-width;
+ }
// Popover directions
&.bs-popover-top {
margin-bottom: $popover-arrow-width;
- ::before,
- ::after {
+ .arrow::before,
+ .arrow::after {
left: 50%;
border-bottom-width: 0;
}
- ::before {
+ .arrow::before {
bottom: -$popover-arrow-outer-width;
margin-left: -$popover-arrow-outer-width;
border-top-color: $popover-arrow-outer-color;
}
- ::after {
+ .arrow::after {
bottom: -($popover-arrow-outer-width - 1);
margin-left: -$popover-arrow-width;
border-top-color: $popover-arrow-color;
&.bs-popover-right {
margin-left: $popover-arrow-width;
- ::before,
- ::after {
+ .arrow::before,
+ .arrow::after {
top: 50%;
border-left-width: 0;
}
- ::before {
+ .arrow::before {
left: -$popover-arrow-outer-width;
margin-top: -$popover-arrow-outer-width;
border-right-color: $popover-arrow-outer-color;
}
- ::after {
+ .arrow::after {
left: -($popover-arrow-outer-width - 1);
margin-top: -($popover-arrow-outer-width - 1);
border-right-color: $popover-arrow-color;
&.bs-popover-bottom {
margin-top: $popover-arrow-width;
- ::before,
- ::after {
+ .arrow::before,
+ .arrow::after {
left: 50%;
border-top-width: 0;
}
- ::before {
+ .arrow::before {
top: -$popover-arrow-outer-width;
margin-left: -$popover-arrow-outer-width;
border-bottom-color: $popover-arrow-outer-color;
}
- ::after {
+ .arrow::after {
top: -($popover-arrow-outer-width - 1);
margin-left: -$popover-arrow-width;
border-bottom-color: $popover-arrow-color;
&.bs-popover-left {
margin-right: $popover-arrow-width;
- ::before,
- ::after {
+ .arrow::before,
+ .arrow::after {
top: 50%;
border-right-width: 0;
}
- ::before {
+ .arrow::before {
right: -$popover-arrow-outer-width;
margin-top: -$popover-arrow-outer-width;
border-left-color: $popover-arrow-outer-color;
}
- ::after {
+ .arrow::after {
right: -($popover-arrow-outer-width - 1);
margin-top: -($popover-arrow-outer-width - 1);
border-left-color: $popover-arrow-color;
padding: $popover-content-padding-y $popover-content-padding-x;
color: $popover-content-color;
}
-
-
-// Arrows
-//
-// .popover-arrow is outer, .popover-arrow::after is inner
-
-.arrow::before,
-.arrow::after {
- position: absolute;
- display: block;
- width: 0;
- height: 0;
- border-color: transparent;
- border-style: solid;
-}
-
-.arrow::before {
- content: "";
- border-width: $popover-arrow-outer-width;
-}
-.arrow::after {
- content: "";
- border-width: $popover-arrow-width;
-}