Blame | Last modification | View Log | Download | RSS feed
class Morris.Hover# Displays contextual information in a floating HTML div.@defaults:class: 'morris-hover morris-default-style'constructor: (options = {}) ->@options = $.extend {}, Morris.Hover.defaults, options@el = $ "<div class='#{@options.class}'></div>"@el.hide()@options.parent.append(@el)update: (html, x, y) ->if not html@hide()else@html(html)@show()@moveTo(x, y)html: (content) ->@el.html(content)moveTo: (x, y) ->parentWidth = @options.parent.innerWidth()parentHeight = @options.parent.innerHeight()hoverWidth = @el.outerWidth()hoverHeight = @el.outerHeight()left = Math.min(Math.max(0, x - hoverWidth / 2), parentWidth - hoverWidth)if y?top = y - hoverHeight - 10if top < 0top = y + 10if top + hoverHeight > parentHeighttop = parentHeight / 2 - hoverHeight / 2elsetop = parentHeight / 2 - hoverHeight / 2@el.css(left: left + "px", top: parseInt(top) + "px")show: ->@el.show()hide: ->@el.hide()