如何让 jQuery 在每次悬停时识别鼠标悬停在图像上一次

How to get jQuery to recognize mouse over image once per hover

我正在尝试在鼠标悬停在图片上时为图片制作动画。我目前正在使用 "animate.css" 来获取动画。有两个问题:

1) 如何在每次悬停时让我的脚本 jQuery 到 "fire" 一次?例如,如果我创建一个警报,该警报将触发几次(将鼠标放在上面然后将其移开)。

2) 我当前的 jQuery 语法有什么问题?动画不播放。

HTML

<!DOCTYPE html>
<html>
  <head>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="CSS/stylesheet_test.css" rel="stylesheet" type="text/css">
    <link rel="stylesheet" href="CSS/animate.css">
    <link href="https://fonts.googleapis.com/css?family=Work+Sans:500&amp;subset=latin-ext" rel="stylesheet">
    <link href="https://fonts.googleapis.com/css?family=Raleway" rel="stylesheet">
    <script type="text/javascript" src="scripts/jquery-3.1.1.min.js"></script>
    <script type="text/javascript" src="scripts/test.js"></script>
    <title>Daryl N.</title>
  </head>
  <body>
    <div class="container">
      <div class="navbar">
        <div class="nav-text"><span id="home"><a href="index_test.html">Home</a></span><span id="archive">Archive</span></div>
      </div>
      <div id="first" class="background">
        <div class="align-vert"><img id="me-pic" src="./images/me.jpg" alt="A picture of me is suppose to be here" style="width:240px;height:240px;" class="me-border animated bounceIn"><span class="daryl animated bounceIn">Hi, I'm Daryl</span></div>
      </div>
      <script type="text/javascript" src="scripts/test.js"></script>
      <div id="second" class="background">
        <p class="align-vert">This is my personal website</p>
      </div>
    </div>
  </body>
</html>

JS

$(document).ready(function()
{
  $('#me-pic').hover(function()
  {
    $(".bounceIn").toggleClass("bounce");
  });
});

我的CSS

body,html
{
  width: 100%;
  min-width: 200px;
  height: 100%;
  padding: 0;
  margin: 0;
}

.container
{
  width: 100%;
  min-width: 500px;
  height: 100%;
}

.background
{
  height: 100%;
  width: 100%;
  display: inline-block;
  position: relative;
  z-index: 1;
}

.align-vert
{
  text-align: center;
  position: relative;
  top: 50%;
  transform: translateY(-50%);
}

.me-border
{
  border-radius: 50%;
  border: 2px solid #FFF;
  vertical-align:middle
}

.navbar
{
  position: fixed;
  background-color: rgba(0, 0, 0, 0.9);
  margin: 0;
  padding: 0;
  width: 100%;
  height: 50px;
  z-index: 2;
}

.nav-text
{
  color: #a3a3a3;
  font-family: 'Raleway', sans-serif;
  font-weight: 600;
  font-size: 16px;
  text-align: center;
  position: relative;
  top: 50%;
  transform: translateY(-50%);
}
  #home
  {
    margin-right: 50px;
  }

    #home:hover
    {
      color: #777777;
    }

    #home a:hover, a:visited, a:link, a:active
    {
      text-decoration: none;
      color: inherit;
    }

  #archive
  {
    margin-left: 50px;
  }

    #archive:hover
    {
      color: #777777;
    }


.daryl
{
  font-family: 'Work Sans', sans-serif;
  display: inline-block;
  padding-left: 20px;
  font-size: 30px;
  color: #FFF;
}
 #first
 {
   background: #2C2D45;
 }

#second
{
  background: #354677;
  font-size: 40px;
  font-family: 'Work Sans', sans-serif;
  color: white;
}

参见 here animate.css

我的 CSS 文件会导致冲突吗?

提前致谢!

在您的 JS 中,我会改用 mouseentermouseleave 事件处理程序。根据您的解释,这应该很好用。当鼠标进入 div 时它会触发一次,离开时会触发一次。

$(document).ready(function()
{
  $('#me-pic').on('mouseenter', function() {
    $(".bounceIn").toggleClass("bounce");
  });
  
  $('#me-pic').on('mouseleave', function() {
    $(".bounceIn").toggleClass("bounce");
  });
  
});