所以我有一些看起来像这样的javascript:
var headshot = {
enter: function(e) {
$(e.target).find('.overlay').slideDown();
},
exit: function(e) {
$(e.target).find('.overlay').slideUp();
}
}
····
$(function() {
$('.headshot').hover(headshot.enter, headshot.exit);
});
和一些看起来像这样的html(haml):
.board-row
.headshot
.overlay
blahblah
%br
Chief Javascript Architect
.headshot
.overlay
blah
%br
Liason
.headshot
.overlay
etc
%br
Kati Roll Advocate
.headshot
.overlay
blah
%br
Javascript Developer
有一点像这样的CSS:
.board-container {
margin-top: 60px;
padding: 0;
}
··
.board-row {
padding: 0;
width: 100%;
height: 200px;
}
.headshot {
display: inline-block;
margin: 0;
padding: 0;
height: 100%;
width: 24%;
}
.overlay {
width: 24%;
height: 50%;
opacity: 0.3;
background: black;
position: absolute;
display: none;
color: white;
}
我认为javascript与其他所有内容一起创建了一个漂亮的幻灯片动画,其中不透明的div显示在包含html中文本的爆头上。当我将鼠标悬停在图像上时,确实会发生这种情况(虽然我不确定为什么我需要将叠加上的CSS宽度和高度分别设置为24%和50%,我认为它会占用宽度和高度如果我将它们设置为100%,则为headshot父元素。然而,当我将头像悬停在爆头或不同的爆头上时,尽管我的退出功能,覆盖仍然坚持。是什么赋予了?每隔一段时间就会滑落一次,但这不是规则的例外......
答案 0 :(得分:0)
在你的退出函数中,e.target有时会使用'overlay'类本身捕获div,所以代码:
$(e.target).find('.overlay')
什么都不返回。
修复退出功能:
exit: function(e) {
$(e.currentTarget).slideUp();
}
这是一个很好的解释 - Difference between e.target and e.currentTarget