1.1.0 • Published 8 years ago

vue-comps-tooltip v1.1.0

Weekly downloads
21
License
MIT
Repository
github
Last release
8 years ago

vue-comps-tooltip

a unstyled tooltip, which adjusts opening direction to be in viewport.

Demo

Install

npm install --save-dev vue-comps-tooltip

or include build/bundle.js.

Usage

# in your component
components:
  "tooltip": require("vue-comps-tooltip")
# or, when using bundle.js
components:
  "tooltip": window.vueComps.tooltip
<button> Hover
  <tooltip>Content</tooltip>
</button>

see dev/ for examples.

Props

Nametypedefaultdescription
offsetNumber0offset to the parent
anchorString"snwe"direction of opening, viewport dependent. "s" forces to open down. "sn" would try to open down, the up.
ignore-parentBooleanfalsewill not set-up mouseenter/mouseleave listener on parent
is-openedBooleanfalse(two-way) set to open / close
transitionString"tooltip"name of a vue transition. Detailed description
parentElementparentElementwhere the tooltip should attach its listeners
on-bodyBooleanfalsewill be positioned on body instead of parent element. Detailed description

Events

Namedescription
before-enterwill be called before open animation
after-enterwill be called when opened
before-leavewill be called before close animation
after-leavewill be called when closed
toggled(isOpened:Boolean)emitted when gets opened or closed. Alternative to use two-way is-opened prop

Positioning

There are two ways of positioning. The default is as a child of the parent element, the other posibility is on body.

  • The parent positioning can be problematic when you have an overflow:hidden as a parent to the nearest element with position:absolute|relative|fixed and the tooltip is overflowing.
  • the body positioning can be problematic when the parent is moving relative to body or when you depend on inheritance of styles.

Transition

You can provide a vue transition like this:

Vue.transition("fade",{
  // your transition
})
// or in the instance:
transitions: {
  fade: {
    // your transition
  }
}
// usage:
template: "<tooltip transition='fade'></tooltip>"

You can access several properties in your enter hook:

enter: function(el,cb) {
  // in which direction the tooltip will open. one of s, n, w or e
  this.direction
  // style properties as numbers
  this.top
  this.left
  this.width
  this.height
  this.offset // will be added on or subtracted of top or left depending on direction
}

see dev/transition for a working example.

Changelog

  • 1.1.0
    added toggled event
    set default transition

  • 1.0.0
    renamed position prop to on-body - now is a boolean
    now using vue transitions
    events are renamed after vue transitions

Development

Clone repository.

npm install
npm run dev

Browse to http://localhost:8080/.

License

Copyright (c) 2016 Paul Pflugradt Licensed under the MIT license.

1.1.0

8 years ago

1.0.0

8 years ago

0.2.3

8 years ago

0.2.2

8 years ago

0.2.1

8 years ago

0.2.0

8 years ago

0.1.0

8 years ago