在 jQuery 函数之后重叠相对定位的对象


Overlapping relatively positioned objects after a jQuery function

所以我四处寻找了很多例子,但我找不到我到底想做什么的任何东西。

我正在建立一个博客,首页有一堆帖子,顺序是这样的 -

http://prntscr.com/1vjoun

博客的大小根据其中的文字量而有所不同 -

http://prntscr.com/1vjozq

当您将鼠标悬停在博客上时,我试图在博客内部出现一个小条,该条与底部的文本重叠,以便我可以显示一些选项,例如"喜欢","收藏夹","功能"或w/e,这就是我的问题所在。

echo "<div class='blogpost' id='" . $row['blogid'] . "'>";
echo "<h3 class='blogheader'>" . $row['blogheader'] . "</h3>";
echo "<p class='blogbody'>" . $row['blogbody'] . "</p>";
echo "<div class='blogextras'></div>";
echo "</div>";

我创建了"blogextras"div,它将包含上述选项。

.blogextras {
    position:relative;
    height:35px;
    width:100%;
    background:#333;
}

我给它一些风格。

    $(".blogpost").hover(function(){
$(".blogpost").css("overflow", "auto");
$(".blogextras").show();
$(".blogextras").css("position", "absolute");
});
  $(".blogpost").mouseleave(function(){
$(".blogpost").css("overflow", "hidden");
$(".blogextras").hide();
$(".blogextras").css("position", "relative");
  });

添加一些jQuery。

但我的最终结果使"blogextras"div出现在我想要的位置下方(约35像素( -

http://prntscr.com/1vjppq

我也尝试不将其位置从相对更改为绝对,这确实给出了一种期望的结果,除了它使框重新调整大小,我不希望它这样做。

我希望"blogextras"div每次都出现在可见文本区域的底部,无论"blogpost"div的大小如何。

抱歉,如果我没有足够的描述性或没有提供足够的代码,如果您想查看更多内容,请发表评论。

您的.blogpost容器需要一个相对位置,以便您可以将.blogextras栏准确地放置在该容器内。您还需要为.blogextras栏提供更高的z-index,以便它与.blogpost内容重叠:

.blogpost {
    position:relative;
    overflow:hidden;
    /* Other CSS */
}
.blogextras {
    position:absolute;
    z-index:10;
    bottom:0;
    left:0;
    display:none;
    height:35px;
    width:100%;
    background:#333;
}
$(".blogpost").hover(function(){
    $(".blogextras").fadeIn();
});
$(".blogpost").mouseleave(function(){
    $(".blogextras").fadeOut();
});

未经测试,但这应该给你~你需要的东西。