Package Exports
- v-tooltip
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (v-tooltip) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
v-tooltip
Easy tooltips with Tooltip.js
Installation
Npm
npm install --save v-tooltip
Install the plugin into Vue:
import Vue from 'vue'
import VTooltip from 'v-tooltip'
Vue.use(VTooltip)
Or use the directive directly:
import Vue from 'vue'
import { VTooltip } from 'v-tooltip'
Vue.directive('tooltip', VTooltip)
Browser
Include popper.js & tooltip.js with v-tooltip in the page.
Install the plugin into Vue:
Vue.use(VTooltip)
Or use the directive directly:
Vue.directive('tooltip', VTooltip.VTooltip)
Usage
In the template, use the v-tooltip
directive:
<button v-tooltip="'You have ' + count + ' new messages.'">
Of course, you can use a reactive property:
<button v-tooltip="tooltipContent">
You can specify the tooltip position as a modifier:
<button v-tooltip.bottom-left="'You have ' + count + ' new messages.'">
The available positions are:
'top'
'top-start'
'top-end'
'right'
'right-start'
'right-end'
'bottom'
'bottom-start'
'bottom-end'
'left'
'left-start'
'left-end'
Object notation
You can use an object instead of a simple string:
<button v-tooltip="{ content: 'You have ' + count + ' new messages.' }">
Dynamic CSS classes
You can set the tooltip css classes dynamically with the object notation:
<button v-tooltip="{ content: 'You have ' + count + ' new messages.', classes: ['a', 'b'] }">
This will replace the default CSS classe with 'a b' on the tooltip element.
You can also use the standard class notation:
<button v-tooltip="{ content: 'You have ' + count + ' new messages.', classes: 'a b' }">
Or a reactive property:
<button v-tooltip="{ content: 'You have ' + count + ' new messages.', classes: tooltipClasses }">
Other options
<button v-tooltip="options">
content
- HTML text to be displayed in the tooltipclasses
- (see above)delay
- Show/Hide delay (ms)placement
- (see above)trigger
- Events triggering the tooltip separated with spaces:'hover'
,'click'
,'focus'
or'manual'
('manual'
can't be combined with any other event)offset
- Offset of the position (px)container
- Selector: Container where the tooltip will be appended (e.g.'body'
)
Global options
The default global options are:
{
// Default tooltip placement relative to target element
defaultPlacement: 'top',
// Default CSS classes applied to the tooltip element
defaultClass: 'vue-tooltip-theme',
// Default HTML template of the tooltip element
// It must include `tooltip` & `tooltip-inner` CSS classes
defaultTemplate: '<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',
// Delay (ms)
defaultDelay: 0,
// Default events that trigger the tooltip
defaultTrigger: 'hover focus',
// Default position offset (px)
defaultOffset: 0,
// Default container where the tooltip will be appended
defaultContainer: 'body',
}
You can change the options during install with the arguments:
Vue.use(VTooltip, options)
Or directly on the directive definition:
// Set custom CSS class
VTooltip.options.defaultClass = 'my-tooltip'
Disabling tooltips
On mobile, you can disable the tooltips with the VTooltip.enabled
property:
VTooltip.enabled = window.innerWidth > 768
Example Style
Sass / Less
.tooltip {
display: block !important;
padding: 4px;
z-index: 10000;
.tooltip-inner {
background: black;
color: white;
border-radius: 16px;
padding: 5px 10px 4px;
}
.tooltip-arrow {
display: none;
}
&[aria-hidden='true'] {
visibility: hidden;
opacity: 0;
transition: opacity .15s, visibility .15s;
}
&[aria-hidden='false'] {
visibility: visible;
opacity: 1;
transition: opacity .15s;
}
}
CSS
.tooltip {
display: block !important;
padding: 4px;
z-index: 10000;
}
.tooltip .tooltip-inner {
background: black;
color: white;
border-radius: 16px;
padding: 5px 10px 4px;
}
.tooltip tooltip-arrow {
display: none;
}
.tooltip[aria-hidden='true'] {
visibility: hidden;
opacity: 0;
transition: opacity .15s, visibility .15s;
}
.tooltip[aria-hidden='false'] {
visibility: visible;
opacity: 1;
transition: opacity .15s;
}
LICENCE ISC - Created by Guillaume CHAU (@Akryum)