你如何在一个img上叠加一个div,然后显示另一个div onmouseover?

时间:2009-07-19 09:01:53

标签: javascript jquery html css

我有一个列表缩略图,点击时可以显示更大的对应项。我想在缩略图的底部边缘的div中显示图像标题。此外,当鼠标移动到缩略图上时,它会在整个事物上显示第二个div(包含文本)。

最好的方法是什么?如果需要js库,则首选jquery。

3 个答案:

答案 0 :(得分:1)

如果您准备好jQuery,那么Sam Dunn这是一篇很棒的帖子。

答案 1 :(得分:0)

<div>
    <img id="image-1" src="yourimage.png" title="My title" />
    <p id="image-1-title"></p>
</div>


$(document).ready(function(){
    $("img[id^='image-']").each(function(i){
        var id = $(this).attr("id");
        var title = $(this).attr("title");
        $("#"+id+"-title").html(title);
    });
});

这应该适用于图像标题:)

答案 2 :(得分:0)

前段时间我写了一个小插件,可以让你做你需要的,并在悬停时动画。它最初是为了添加悬停背景动画,但我想它应该能够做你需要的。

    /*
     * jQuery Animate Background (v0.2)
     * Copyright (c) 2009 Mario "Kuroir" Ricalde ( http://twitter.com/exolimpo )
     * Usage:
     *  $("h1").animateBg();
     *  Con Campos Opcionales:
     *  $("div").animateBg({time:130,add:"span"});
    */
    (function($){
        $.fn.animateBg = function(opciones){
            $.fn.animateBg.defecto = {
                time : "fast", add : "span"
            };
            var config = $.extend({}, $.fn.animateBg.defecto, opciones);
            this.each(function(){
                var c = config;
                var title = $(this).attr("title");
                $(this).append("<"+ c.add +">" + title + "</"+ c.add +">").hover(function(){
                    $(this).children(c.add).fadeIn(c.time);
                },function(){
                    $(this).children(c.add).fadeOut(c.time);
                });
            });
        }
    })(jQuery);

$(document).ready(function(){
    $("#thumb-list p img").animateBg();
});

<div id="thumb-list">
    <p><img src="lol.jpg" title="My title" /></p>
</div>

很抱歉,如果代码不起作用..我无法测试,因为我不在家。