gpt4 book ai didi

javascript - JS 中的悬停/滑动功能,我做错了什么吗?

转载 作者:行者123 更新时间:2023-11-28 12:13:27 25 4
gpt4 key购买 nike

所以我有一些看起来像这样的 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%)。但是,当我将鼠标悬停在爆头上或另一个爆头上时,尽管有退出功能,但叠加层仍然存在。是什么赋予了?偶尔会有一个人滑走,但这是异常(exception)而不是规则......

最佳答案

在您的退出函数中,e.target 有时会捕获带有“overlay”类本身的 div,因此代码:

$(e.target).find('.overlay')

什么都不返回。

将你的退出函数修改为:

exit: function(e) {
$(e.currentTarget).slideUp();
}

这里有一个很好的解释 - Difference between e.target and e.currentTarget

关于javascript - JS 中的悬停/滑动功能,我做错了什么吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19347590/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com