1
0
Fork 0
mirror of https://github.com/twbs/bootstrap.git synced 2022-11-09 12:25:43 -05:00

Add fallbackPlacement option for Tooltip and Popover

This commit is contained in:
Johann-S 2017-05-05 21:22:55 +02:00
parent ab7dc8ae2a
commit 0ae9d28ba3
4 changed files with 46 additions and 26 deletions

View file

@ -264,6 +264,13 @@ Options can be passed via data attributes or JavaScript. For data attributes, ap
<td>0</td> <td>0</td>
<td>Offset of the popover relative to its target. For more information refer to Popper.js's <a href="https://popper.js.org/popper-documentation.html#modifiers..offset.offset">offset docs</a>.</td> <td>Offset of the popover relative to its target. For more information refer to Popper.js's <a href="https://popper.js.org/popper-documentation.html#modifiers..offset.offset">offset docs</a>.</td>
</tr> </tr>
<tr>
<td>fallbackPlacement</td>
<td>string | array</td>
<td>['top', 'right', 'bottom', 'left']</td>
<td>Allow to specify which position Popper will use on fallback. For more information refer to
Popper.js's <a href="https://popper.js.org/popper-documentation.html#modifiers..flip.behavior">behavior docs</a></td>
</tr>
</tbody> </tbody>
</table> </table>

View file

@ -242,6 +242,13 @@ Options can be passed via data attributes or JavaScript. For data attributes, ap
<td>0</td> <td>0</td>
<td>Offset of the tooltip relative to its target. For more information refer to Popper.js's <a href="https://popper.js.org/popper-documentation.html#modifiers..offset.offset">offset docs</a>.</td> <td>Offset of the tooltip relative to its target. For more information refer to Popper.js's <a href="https://popper.js.org/popper-documentation.html#modifiers..offset.offset">offset docs</a>.</td>
</tr> </tr>
<tr>
<td>fallbackPlacement</td>
<td>string | array</td>
<td>['top', 'right', 'bottom', 'left']</td>
<td>Allow to specify which position Popper will use on fallback. For more information refer to
Popper.js's <a href="https://popper.js.org/popper-documentation.html#modifiers..flip.behavior">behavior docs</a></td>
</tr>
</tbody> </tbody>
</table> </table>

View file

@ -157,7 +157,8 @@ const Dropdown = (($) => {
offset : context._config.offset offset : context._config.offset
}, },
flip : { flip : {
enabled : context._config.flip enabled : context._config.flip,
behavior : [AttachmentMap.TOP, AttachmentMap.BOTTOM]
} }
} }
}) })

View file

@ -36,32 +36,18 @@ const Tooltip = (($) => {
const CLASS_PREFIX = 'bs-tooltip' const CLASS_PREFIX = 'bs-tooltip'
const BSCLS_PREFIX_REGEX = new RegExp(`(^|\\s)${CLASS_PREFIX}\\S+`, 'g') const BSCLS_PREFIX_REGEX = new RegExp(`(^|\\s)${CLASS_PREFIX}\\S+`, 'g')
const Default = {
animation : true,
template : '<div class="tooltip" role="tooltip">'
+ '<div class="arrow"></div>'
+ '<div class="tooltip-inner"></div></div>',
trigger : 'hover focus',
title : '',
delay : 0,
html : false,
selector : false,
placement : 'top',
offset : 0,
container : false
}
const DefaultType = { const DefaultType = {
animation : 'boolean', animation : 'boolean',
template : 'string', template : 'string',
title : '(string|element|function)', title : '(string|element|function)',
trigger : 'string', trigger : 'string',
delay : '(number|object)', delay : '(number|object)',
html : 'boolean', html : 'boolean',
selector : '(string|boolean)', selector : '(string|boolean)',
placement : '(string|function)', placement : '(string|function)',
offset : '(number|string)', offset : '(number|string)',
container : '(string|element|boolean)' container : '(string|element|boolean)',
fallbackPlacement : '(string|array)'
} }
const AttachmentMap = { const AttachmentMap = {
@ -71,6 +57,22 @@ const Tooltip = (($) => {
LEFT : 'left' LEFT : 'left'
} }
const Default = {
animation : true,
template : '<div class="tooltip" role="tooltip">'
+ '<div class="arrow"></div>'
+ '<div class="tooltip-inner"></div></div>',
trigger : 'hover focus',
title : '',
delay : 0,
html : false,
selector : false,
placement : 'top',
offset : 0,
container : false,
fallbackPlacement : [AttachmentMap.TOP, AttachmentMap.RIGHT, AttachmentMap.BOTTOM, AttachmentMap.LEFT]
}
const HoverState = { const HoverState = {
SHOW : 'show', SHOW : 'show',
OUT : 'out' OUT : 'out'
@ -289,6 +291,9 @@ const Tooltip = (($) => {
modifiers : { modifiers : {
offset : { offset : {
offset : this.config.offset offset : this.config.offset
},
flip : {
behavior : this.config.fallbackPlacement
} }
}, },
onCreate : (data) => { onCreate : (data) => {