All Downloads are FREE. Search and download functionalities are using the official Maven repository.

META-INF.resources.butterfaces-js.butterfaces-tooltip.jquery.js Maven / Gradle / Ivy

(function ($) {

    $.fn.butterTooltip = function () {
        return this.each(function () {
            //console.log("initializing tooltip");
            var root = $(this);
            var valueElement = root.find(".butter-component-value");
            var tooltip = root.find(".butter-component-tooltip");

            if (tooltip.length > 0) {
                //console.log("found tooltip element");

                var _positionTooltip = function () {
                    var tooltipWidth = tooltip.outerWidth();
                    var winWidth = $(window).width();

                    if (root.offset().left + root.outerWidth() + tooltipWidth < winWidth) {
                        // try position right
                        tooltip
                            .removeClass("butter-component-tooltip-up")
                            .addClass("butter-component-tooltip-right")
                            .css({
                                position: "absolute",
                                top: 0,
                                left: root.outerWidth(),
                                zIndex: 1000
                            });
                    } else {
                        // try position at bottom
                        tooltip
                            .removeClass("butter-component-tooltip-right")
                            .addClass("butter-component-tooltip-up")
                            .css({
                                position: "absolute",
                                bottom: (tooltip.outerHeight() + 18) * -1,
                                right: 0,
                                zIndex: 1000
                            });
                    }

                };

                var _hideTooltip = function () {
                    //console.log("hiding tooltip");
                    tooltip.addClass("butter-component-tooltip-hidden");
                    tooltip.removeClass("butter-component-tooltip-shown");
                    tooltip.data("tooltip-visible", false);
                    tooltip.attr("style", null);
                    //$(window).off("resize");
                };

                var _showTooltip = function () {
                    //console.log("showing tooltip");
                    if (!tooltip.data("tooltip-visible")) {
                        tooltip.removeClass("butter-component-tooltip-hidden");
                        tooltip.addClass("butter-component-tooltip-shown");
                        _positionTooltip();
                        tooltip.data("tooltip-visible", true);
                        //$(window).on("resize", _positionTooltip);
                    }
                };

                valueElement
                    .mouseenter(function () {
                        _showTooltip();
                    })
                    .mouseleave(function () {
                        if (!tooltip.data("tooltip-permanent")) {
                            _hideTooltip();
                        }
                    })
                    .focus(function () {
                        tooltip.data("tooltip-permanent", true);
                        _showTooltip();
                    })
                    .blur(function () {
                        tooltip.data("tooltip-permanent", false);
                        _hideTooltip();
                    });
            }
        });
    };
}(jQuery));




© 2015 - 2025 Weber Informatics LLC | Privacy Policy