悬停时的jQuery工具提示

时间:2011-07-09 23:18:05

标签: javascript jquery

我需要一个非常轻量级的工具提示,类似于此处{1}},当您将视频链接悬停在“热门视频”下时,工具提示会淡入到位,它会保留在那里,您甚至可以选择文字直到你将光标移开它。当您将鼠标悬停在标记上时,Facebook和Google+也有类似的样式工具提示以及堆栈溢出。有人可以提供轻量级的方法来做到这一点。

我已经搜索并查看了许多现有的“插件”,但它们都有些臃肿。谢谢你的帮助

1 个答案:

答案 0 :(得分:9)

这是一个非常简单的方法,你可以做到这一点:

var timeout;

function hide() {
    timeout = setTimeout(function () {
        $("#tooltip").hide('fast');
    }, 500);
};

$("#tip").mouseover(function () {
    clearTimeout(timeout);
    $("#tooltip").stop().show('fast');
}).mouseout(hide);

$("#tooltip").mouseover(function () {
    clearTimeout(timeout);
}).mouseout(hide);

#tip是要鼠标悬停的元素,以显示工具提示,#tooltip是实际的工具提示元素。

以下是一个示例:http://jsfiddle.net/pvyhY/


如果你想将它包装在一个jQuery插件中:

(function($) {
    $.fn.tooltip = function(tooltipEl) {
        var $tooltipEl = $(tooltipEl);
        return this.each(function() {
            var $this = $(this);            
            var hide = function () {
                var timeout = setTimeout(function () {
                    $tooltipEl.hide();
                }, 500);

                $this.data("tooltip.timeout", timeout);
            };

            /* Bind an event handler to 'hover' (mouseover/mouseout): */
            $this.hover(function () {
                clearTimeout($this.data("tooltip.timeout"));
                $tooltipEl.show();
            }, hide);

            /* If the user is hovering over the tooltip div, cancel the timeout: */
            $tooltipEl.hover(function () {
                clearTimeout($this.data("tooltip.timeout"));
            }, hide);            
        });
    };
})(jQuery);

用法:

$(document).ready(function() {
    $("#tip").tooltip("#tooltip");
});

添加更多功能,您最终会得到优秀的qTip plugin,我建议您也看一下。