Javascript JS中的悬停/滑动功能,我做错了什么吗?
所以我有一些javascript看起来像这样:Javascript JS中的悬停/滑动功能,我做错了什么吗?,javascript,jquery,html,css,Javascript,Jquery,Html,Css,所以我有一些javascript看起来像这样: var headshot = { enter: function(e) { $(e.target).find('.overlay').slideDown(); }, exit: function(e) { $(e.target).find('.overlay').slideUp(); } } ···· $(function() { $('.headshot').hover(headshot.enter, hea
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);
});
.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
还有一些html(haml)如下所示:
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);
});
.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父元素的宽度和高度)。然而,当我悬停在头像之外或另一个头像上时,覆盖层仍然会粘住,尽管我有退出功能。有什么好处?偶尔会有人溜走,但这是例外而不是规则 在退出函数中,e.target有时会使用“overlay”类本身捕获div,因此代码:
$(e.target).find('.overlay')
不返回任何内容
将退出功能修复为:
exit: function(e) {
$(e.currentTarget).slideUp();
}
这是一个很好的解释-我正要打开我的电脑,但是你有一个位置绝对元素(叠加),没有包含它的任何位置相对元素。谢谢--这解决了必须将宽度和高度设置为奇怪数字的问题,但我仍然在javascript悬停函数中得到一种奇怪的粘贴覆盖效果。