悬停图像 - 显示div

时间:2010-11-29 18:29:33

标签: jquery css image facebook hover

在悬停时,我想在图像的右上方显示一个链接。就像你在Facebook上的个人资料图片上所说的“改变图片”一样。

我试图让它使用一些jquery,但没有运气,因为它没有图像的右侧。图像将是不同的大小,因为它们是个人资料图片。无论大小如何,它都需要保持在图像的右上角。

JQuery的:

$(".imgHover").hover(function() {
    $(this).children("img").fadeTo(200, 0.25)
           .end().children(".hover").show();
}, function() {
    $(this).children("img").fadeTo(200, 1)
           .end().children(".hover").hide();
});

HTML:

<div class="imgHover">
    <div class="hover"><a href="htpp://google.com">Edit</a></div>
    <img src="http://img14.imageshack.us/img14/9698/29588166.jpg" alt="" />
</div>

CSS:

.imgHover .hover { 
    display: none;
    position:absolute;
    z-index: 2;

}

谢谢!

5 个答案:

答案 0 :(得分:11)

这就是我这样做的方式: CSS:

.imgHover {
    display: inline;
    position: relative;
}
.imgHover .hover {
    display: none;
    position: absolute;
    right:0;
    z-index: 2;
}

HTML:

<div class="imgHover">
<div class="hover"><a href="htpp://google.com">Edit</a></div>
<img src="http://img14.imageshack.us/img14/9698/29588166.jpg" alt="">
</div>

JQuery的:

$(function() {
    $(".imgHover").hover(
        function() {
            $(this).children("img").fadeTo(200, 0.85).end().children(".hover").show();
        },
        function() {
            $(this).children("img").fadeTo(200, 1).end().children(".hover").hide();
        });
});

jsfiddle上进行测试。

答案 1 :(得分:2)

尝试

<!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>Test</title>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
    <style>
    .imgHover {
        display: inline;
        position: relative;
    }
    .imgHover .hover {
        display: none;
        position: absolute;
        right: 5px;
        top: 5px;
        z-index: 2;
    }
    </style>
</head>

<body> <script> $(function() { $(".imgHover").hover( function() { $(this).children("img").fadeTo(200, 0.25).end().children(".hover").show(); }, function() { $(this).children("img").fadeTo(200, 1).end().children(".hover").hide(); }); }); </script>

<div class="imgHover"><div class="hover"><a href="htpp://google.com">Edit</a></div><img src="http://img14.imageshack.us/img14/9698/29588166.jpg" alt=""></div>

</body> </html>

答案 2 :(得分:2)

如果imgHover与其内容相匹配,那么它应该只有position:relative并且悬停类有position:absolutetop:0;right:0

http://www.jsfiddle.net/FvBqA/

的示例

答案 3 :(得分:1)

使您的图像成为具有相对定位的div的背景 并使用叠加内容向其添加内部div 用display来设置它:none

然后     imgdiv:hover innerdiv {display:block} 会做的伎俩

答案 4 :(得分:1)

您需要将链接绝对定位在位置与正常流量不同的容器中。在这个例子中,我在容器上使用relative。试试这个:

HTML

<div class="imgHover">
  <div class="imgContainer">
    <a href="http://google.com">Edit</a>
    <img src="http://img14.imageshack.us/img14/9698/29588166.jpg" alt="" />
  </div>
</div>

CSS

.imgHover { float: left; }
.imgContainer { position: relative; }
.imgContainer a { display: block; position: absolute; top: 0; right: 0; background: Green;}