jQuery停止悬停(不工作)

时间:2017-01-30 11:10:57

标签: jquery hover

当浏览器宽度小于768px时,我试图停止/取消在jQuery中创建的悬停效果。我尝试过不同的方法,例如.stop()和.finish(),但它们都没有用。

这是我的代码:

$(document).ready(function(){

 var windowWidth = $(window).width()

 if (windowWidth >= 768) {
  $('nav .drop-down').hover(
   function(){
    $('ul', this).stop().fadeIn(300);
   },
   function(){
    $('ul', this).stop().fadeOut(300);
   }
  );
 } else if (windowWidth < 768) {
  $('nav .drop-down').finish();
 }

});


<!DOCTYPE html>
<html>
 <head>
  <title></title>
  <!--Meta-->
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <!--Links-->
  <link href="css/framework.css" rel="stylesheet" type="text/css" />
  <link href="css/main.css" rel="stylesheet" type="text/css"  />
 </head>
 <body>

  <nav>
   <div class="row-full">
    <div class="position column-12">
     <img class="logo" src="img/XXS-Logo.png" alt="Logo" />
     <!--Mobile navigation-->
     <div class="mobile">
      <i class="fa fa-bars" aria-hidden="true"></i>
     </div>
     <ul id="ul-main">
      <!--li-->
      <li><a href="#">Home</a></li>
      <!--li-->
      <li><a href="#">About</a></li>
      <!--li-->
      <li class="drop-down">
       <a href="#">Lead generation</a>
       <i id="lead-icon" class="fa fa-angle-down" aria-hidden="true"></i>
       <ul id="lead-ul">
        <li><a href="#">Solar Panel Leads</a></li>
        <li><a href="#">Home Improvement Leads</a></li>
        <li><a href="#">Heat Pump Leads</a></li>
       </ul>
      </li>
      <!--li-->
      <li class="drop-down">
       <a href="#">Web Design</a>
       <i id="web-icon" class="fa fa-angle-down one" aria-hidden="true"></i>
       <ul id="web-ul">
        <li><a href="#">Responsive Web Design</a></li>
        <li><a href="#">SEO</a></li>
        <li><a href="#">Web Design</a></li>
       </ul>
      </li>
      <!--li-->
      <li class="drop-down">
       <a href="#">Marketing Campaigns</a>
       <i id="marketing-icon" class="fa fa-angle-down" aria-hidden="true"></i>
       <ul id="marketing-ul">
        <li><a href="#">Consumer Data</a></li>
        <li><a href="#">PPC</a></li>
       </ul>
      </li>
      <!--li-->
      <li><a href="#">Clients</a></li>
      <!--li-->
      <li class="drop-down">
       <a href="#">Contact</a>
       <i id="contact-icon" class="fa fa-angle-down" aria-hidden="true"></i>
       <ul id="contact-ul">
        <li>
         <a href="#">Careers with Watts Marketing</a>
         <i id="contact-icon-sub" class="fa fa-angle-down" aria-hidden="true"></i>
         <ul id="contact-ul-sub">
          <li><a href="#">Call Centre Jobs Norwich</a>
         </ul>
        </li>
       </ul>
      </li>
     </ul>
    </div>
   </div>
  </nav>

  <!--Script-->
  <script src="https://use.fontawesome.com/69bc4f0423.js"></script>
  <script src="js/jquery-3.1.1.min.js"></script>
  <script src="js/main.js"></script>
 </body>
</html>

2 个答案:

答案 0 :(得分:0)

您可以使用媒体查询添加悬停效果。所以只在你需要的时候添加它。试试这个:

@media only screen and (min-width: 768px){
   nav .dropdown:hover
   {

   }
}

答案 1 :(得分:0)

您可以使用css media query而不是jquery。

@media only screen and (max-width: 768px) {
    //hide hover effect here
}

@media only screen and (min-width: 768px) {
    //perform hover effect here
}