【发布时间】:2017-04-16 15:17:06
【问题描述】:
我正在使用 JQuery slideUp/slideDown 向图像添加叠加层,该叠加层在鼠标悬停之前一直隐藏,然后从图像底部向上滑动。
向上滑动的 div 被赋予了背景颜色,但它不会显示在图像上,而是显示在它的后面(文本显示在图像的顶部,但我只能看到底部边缘由于我设置的边距,div的背景颜色)。 Z-index 已设置为 100。
有什么想法吗?谢谢!
(function($) {
$(document).ready(function() {
$(".slider").attr("style", "display: none;");
if ($(".slider")) {
$('.image').mouseover(function() {
$(this).find(".slider").slideDown("400");
}).mouseout(function() {
$(this).find(".slider").slideUp("400");
});
}
});
}(jQuery));
.image{
height: 300px;
width: 300px;
background: #000000;
}
.slider {
background-color: #333333 !important;
background: #333333 !important;
background-position: 0% 100%;
color: #ffffff;
margin: -90px 0 0 0;
height: 90px;
width: 100%;
z-index: 100 !important;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="container">
<div class="image">
</div>
<div class="slider">
<div class="title">Title</div>
<div class="text">Text</div>
</div>
</div>
【问题讨论】:
-
您的 jQuery 选择器不正确。您应该改用
$(this).parent().find(".slider").slideDown("400");,因为$(this)容器内没有.slider,在本例中为.image。但是,如果您将鼠标悬停在滑块上,它就会消失。我不确定这是否是所需的行为......也许最好将mouseover/mouseout事件绑定到容器。
标签: javascript jquery html css