Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JS中的悬停/滑动功能,我做错了什么吗?_Javascript_Jquery_Html_Css - Fatal编程技术网

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

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

所以我有一些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);
});
.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悬停函数中得到一种奇怪的粘贴覆盖效果。