javascript - 将动画悬停在菜单的一项而不是所有项目上

标签 javascript

我正在尝试使用 Greensock 动画平台向我的导航项添加悬停动画。动画按照我的预期工作,但它应用于所有导航项目,而不仅仅是悬停在其上的项目。下面是代码和 Codepen 的链接。任何帮助将非常感激。

let $portfolioBtn = $('.portfolio-btn');
let $portfolioBtnUnderline = $('.portfolio-btn-underline');

$portfolioBtn.mouseover(function() {
  TweenMax.to($portfolioBtnUnderline, 0.5, {
    scaleX: 1,
    ease: Power4.easeInOut,
  })
});

$portfolioBtn.mouseleave(function() {
  TweenMax.to($portfolioBtnUnderline, 0.5, {
    scaleX: 0,
    ease: Power4.easeInOut,
  })
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/latest/TweenMax.min.js"></script>

<nav class="menu">
  <ul class="active">
    <li>
      <a class="portfolio-btn" href="#">About</a>
      <div class="portfolio-btn-underline"></div>
    </li>
    <li>
      <a class="portfolio-btn" href="#">Item 1</a>
      <div class="portfolio-btn-underline"></div>
    </li>
    <li>
      <a class="portfolio-btn" href="#">Item 2</a>
      <div class="portfolio-btn-underline"></div>
    </li>
    <li>
      <a class="portfolio-btn" href="">Item 3</a>
      <div class="portfolio-btn-underline"></div>
    </li>
    <li>
      <a class="portfolio-btn" href="#">Contact</a>
      <div class="portfolio-btn-underline"></div>
    </li>
  </ul>
</nav>

https://codepen.io/rp20/pen/WdrwWP

最佳答案

HTML

  <nav class="menu">
      <ul class="active">
        <li>
          <a class="portfolio-btn" href="#">About</a>
        </li>
        <li>
          <a class="portfolio-btn" href="#">Item 1</a>
        </li>
        <li>
          <a class="portfolio-btn" href="#">Item 2</a>
        </li>
        <li>
          <a class="portfolio-btn" href="">Item 3</a>
        </li>
        <li>
          <a class="portfolio-btn" href="#">Contact</a>
        </li>
      </ul>
    </nav>

CSS

.portfolio-btn {
  position: relative;
  color: #000;
  text-decoration: none;
}
.portfolio-btn:hover {
  color: #000;
}
.portfolio-btn:before {
  content: "";
  position: absolute;
  width: 100%;
  height: 2px;
  bottom: 0;
  left: 0;
  background-color: #000;
  visibility: hidden;
  -webkit-transform: scaleX(0);
  transform: scaleX(0);
  -webkit-transition: all 0.3s ease-in-out 0s;
  transition: all 0.3s ease-in-out 0s;
}
.portfolio-btn:hover:before {
  visibility: visible;
  -webkit-transform: scaleX(1);
  transform: scaleX(1);
}

希望这有帮助

关于javascript - 将动画悬停在菜单的一项而不是所有项目上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47862004/

相关文章:

javascript - 如何创建一个包含所有项目文本变量的文件?

javascript - 在一个单词动画时移动文本

javascript - Google Puppeteer 未获取所有第三方 cookie

javascript - 在弹出窗口中显示组合的 Canvas 图像

javascript - 我需要帮助才能在 Xcode 中创建的简单 webview 应用程序中运行 Javascript Alert 和 Confirm

javascript - 以编程方式停止 slider 的自动滑动

javascript - React-Native:Webview Javascript-Injection 未按预期工作

javascript - 如何选择被点击的行

javascript - 如何将 google 工作表拉取为 html 元素

javascript - 从中心位置旋转数组