0

我正在使用这个 Jquery 函数,因此使用 html 中的关联 alt 标签在图像上方显示标题。我希望能够为显示的文本设置样式,并想知道是否有办法做到这一点。这是我正在使用的代码。

$(function () {
    var show = false;
    $(".thumb").mouseenter(function () {
        var $t = $(this);
        var $d = $("<div>");
        $d.addClass("desc").text($t.attr("alt")).css({
            width: $t.width(),
            height: $t.height() - 20,
            top: $t.position().top
        });
        $t.after($d).fadeTo("fast", 0.3);
        $d.mouseleave(function () {
            $(this).fadeOut("fast", 0, function () {
                $(this).remove();
            }).siblings("img.thumb").fadeTo("fast", 1.3);
        });
    });
    $('#caption-toggle').click(function() {
        if (!show) $('.thumb').trigger('mouseenter');
        else {
            $('.thumb ~ div').fadeOut("fast", 0, function () {
                $(this).remove();
            }).siblings("img.thumb").fadeTo("fast", 1.0);
        }   
        show = !show;
    });
});

大多数人对这个网站上的类似问题的回答是“否”,但我想问问自己以确保这是否可能。干杯!

4

1 回答 1

0

尝试找出该功能的工作原理,这将为您节省大量时间。我看到你对同一个函数有更多的问题,如果你已经知道它是如何工作的,那么这一切都是不必要的。

(抱歉,如果您没有意识到,那是在开玩笑。因为 StackOverflow 上的所有其他问题都是如此!)

无论如何,诀窍是制作外部 div position:relative,以便内部 div 位于同一位置。然后您需要做的就是将它们放在中间,例如将 设置line-height为与图像高度相同的值。并且使用绝对定位,您将不需要z-index.

结果小提琴在这里

于 2013-08-01T19:45:54.437 回答