【问题标题】:jQuery tool tip on hover悬停时的 jQuery 工具提示
【发布时间】:2011-07-09 23:18:05
【问题描述】:

我需要一个非常轻量级的工具提示,类似于 http://www.history.com/videos 在此处找到的 1 当您将视频链接悬停在“热门视频”下时,工具提示会淡入到位,它会保留在那里,您甚至可以选择上面的文本直到您将光标移开。当您将鼠标悬停在标签上时,Facebook 和 Google+ 也有类似样式的工具提示和 stackoverflow。有人可以提供一种轻量级的方法来做到这一点。

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

【问题讨论】:

  • 为什么我在 chrome 中没有看到工具提示,它是否在 chrome 中显示给你
  • 您好,我使用的是 chrome,您是要到页面底部的“热门视频”标题下吗?

标签: javascript jquery


【解决方案1】:

这是一个非常简单的方法:

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,我建议您也看看。

【讨论】:

  • 这是我正在寻找的一个好的开始,我只需要延迟在悬停时显示任何内容几秒钟,如果可能的话将其全部包装到一个类或函数中(我不确定是 javascript 最好的主意,但我认为如果它在它自己的 shell 中,它会更好地与我的其他 js 一起使用),感谢代码
  • @jason ,如果你有时间使用 jquery hover intent 非常轻量级的插件,用于这些类型的东西 cherne.net/brian/resources/jquery.hoverIntent.html
  • @jasondavis:好点;查看简单插件实现的更新代码。
猜你喜欢
  • 2014-11-21
  • 1970-01-01
  • 2018-12-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多