悬停时如何使图像显示在图像的顶部?

qwr*_*qwr 0 html javascript css

当鼠标悬停在图像上方时,图像将模糊,并且图像顶部会显示文本.我自己尝试使用下面的代码,但似乎"文本"在悬停时移动到图像外...有人能告诉我为什么吗?

码:

HTML:

<span class ="row_1">
<a href="#">
<div class = "caption"> testing </div>
<img class = "img_link" src="image/food/food1.jpg" />
</a>
</span>
Run Code Online (Sandbox Code Playgroud)

CSS:

.caption
{
display: none;
}
Run Code Online (Sandbox Code Playgroud)

jQuery的:

    $('a').hover(
    function(){
    var image = $(this).find('img'),
     caption = $(this).find('div');
     caption.width(image.width());
     caption.height(image.height());
     caption.fadeIn();
    },
    function(){
     var image= $(this).find('img'),
        caption = $(this).find('div');

    caption.width(image.width());
    caption.height(image.height());
    caption.fadeOut();
});
Run Code Online (Sandbox Code Playgroud)

Dav*_*mas 6

首先,我必须更正您的HTML.甲div(块级元素)是任一个的有效子spana元件(二者均在线元件).因此,将您的HTML修改为以下内容:

<span class="row_1">
    <a href="#">
        <span class="caption">testing</span>
        <img class="img_link" src="http://davidrhysthomas.co.uk/img/dexter.png" />
    </a>
</span>?
Run Code Online (Sandbox Code Playgroud)

也就是说,如果可能的话,我建议使用纯CSS:

a {
    display: inline-block;
    position: relative;
}
.caption {
    display: none;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    background-color: #333; /* for browsers that don't understand rgba() notation */
    background-color: rgba(0,0,0,0.6);
    color: #f90;
    font-weight: bold;
    line-height: 1.1em;
}
a:hover .caption {
    display: block;
}?
Run Code Online (Sandbox Code Playgroud)

JS小提琴演示.

使用CSS3过渡,您甚至可以实现淡入过渡(对于那些不理解/实现过渡的浏览器而言,这会优雅地降级,尽管在此示例中您可能必须使用Microsoft专有过滤器来实现旧的IE合规性):

a {
    display: inline-block;
    position: relative;
}
.caption {
    opacity: 0;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    background-color: #333; /* for browsers that don't understand rgba() notation */
    background-color: rgba(0,0,0,0.6);
    color: #f90;
    font-weight: bold;
    line-height: 1.1em;
    -webkit-transition: all 1s linear;
    -o-transition: all 1s linear;
    -ms-transition: all 1s linear;
    -moz-transition: all 1s linear;
    transition: all 1s linear;
}
a:hover .caption {
    opacity: 1;
    -webkit-transition: all 1s linear;
    -o-transition: all 1s linear;
    -ms-transition: all 1s linear;
    -moz-transition: all 1s linear;
    transition: all 1s linear;
}?
Run Code Online (Sandbox Code Playgroud)

JS小提琴演示.

如果你必须使用jQuery,那么我建议保持它非常非常简单:

?$('.row_1 a').hover(
    function(){
        $(this).find('.caption').fadeIn(1000);
    },
    function(){
        $(this).find('.caption').fadeOut(1000);
    });????????
Run Code Online (Sandbox Code Playgroud)

JS小提琴演示.

参考文献: