lib/assets/javascripts/up/tooltip.js.coffee in upjs-rails-0.6.4 vs lib/assets/javascripts/up/tooltip.js.coffee in upjs-rails-0.6.5
- old
+ new
@@ -8,72 +8,80 @@
\#\#\# Incomplete documentation!
We need to work on this page:
- Show the tooltip's HTML structure and how to style the elements
-- Explain how to position tooltips using `up-origin`
+- Explain how to position tooltips using `up-position`
- We should have a position about tooltips that contain HTML.
@class up.tooltip
###
up.tooltip = (->
u = up.util
- position = ($link, $tooltip, origin) ->
+ setPosition = ($link, $tooltip, position) ->
linkBox = u.measure($link)
tooltipBox = u.measure($tooltip)
- css = switch origin
+ css = switch position
when "top"
left: linkBox.left + 0.5 * (linkBox.width - tooltipBox.width)
top: linkBox.top - tooltipBox.height
when "bottom"
left: linkBox.left + 0.5 * (linkBox.width - tooltipBox.width)
top: linkBox.top + linkBox.height
else
- u.error("Unknown origin %o", origin)
- $tooltip.attr('up-origin', origin)
+ u.error("Unknown position %o", position)
+ $tooltip.attr('up-position', position)
$tooltip.css(css)
createElement = (html) ->
u.$createElementFromSelector('.up-tooltip')
.html(html)
.appendTo(document.body)
###*
- Opens a tooltip.
+ Opens a tooltip over the given element.
+
+ up.tooltip.open('.help', {
+ html: 'Enter multiple words or phrases'
+ });
@method up.tooltip.open
@param {Element|jQuery|String} elementOrSelector
- @param {String} html
- @param {String} [options.origin='top']
+ @param {String} [options.html]
+ The HTML to display in the tooltip.
+ @param {String} [options.position='top']
+ The position of the tooltip. Known values are `top` and `bottom`.
@param {String} [options.animation]
+ The animation to use when opening the tooltip.
###
open = (linkOrSelector, options = {}) ->
$link = $(linkOrSelector)
html = u.option(options.html, $link.attr('up-tooltip'), $link.attr('title'))
- origin = u.option(options.origin, $link.attr('up-origin'), 'top')
+ position = u.option(options.position, $link.attr('up-position'), 'top')
animation = u.option(options.animation, $link.attr('up-animation'), 'fade-in')
+ animateOptions = up.motion.animateOptions(options, $link)
close()
$tooltip = createElement(html)
- position($link, $tooltip, origin)
- up.animate($tooltip, animation, options)
+ setPosition($link, $tooltip, position)
+ up.animate($tooltip, animation, animateOptions)
###*
Closes a currently shown tooltip.
Does nothing if no tooltip is currently shown.
@method up.tooltip.close
@param {Object} options
- See options for See options for [`up.animate`](/up.motion#up.animate).
+ See options for [`up.animate`](/up.motion#up.animate).
###
close = (options) ->
$tooltip = $('.up-tooltip')
if $tooltip.length
options = u.options(options, animation: 'fade-out')
+ options = u.merge(options, up.motion.animateOptions(options))
up.destroy($tooltip, options)
-
###*
Displays a tooltip when hovering the mouse over this element:
<a href="/decks" up-tooltip="Show all decks">Decks</a>