【问题标题】:Add Active Class when Scrolling and Clicking滚动和单击时添加活动类
【发布时间】:2021-06-30 02:45:39
【问题描述】:

我希望有人能够帮助我编写代码,我想在滚动时添加活动类,而不仅仅是通过单击。我怎样才能在我的代码上做到这一点。我不擅长 javascript 或 jquery。非常感谢

jQuery(document).ready(function($) {

  //you can now use $ as your jQuery object.
  $('div p').click(function() {
    $(this).addClass('active').siblings().removeClass('active');
  })

  // Select all links with hashes
  $('a[href*="#"]')
    // Remove links that don't actually link to anything
    .not('[href="#"]')
    .not('[href="#0"]')
    .click(function(event) {
      // On-page links
      if (
        location.pathname.replace(/^\//, '') == this.pathname.replace(/^\//, '') &&
        location.hostname == this.hostname
      ) {
        // Figure out element to scroll to
        var target = $(this.hash);
        target = target.length ? target : $('[name=' + this.hash.slice(1) + ']');
        // Does a scroll target exist?
        if (target.length) {
          // Only prevent default if animation is actually gonna happen
          event.preventDefault();
          $('html, body').animate({
            scrollTop: target.offset().top
          }, 1000, function() {
            // Callback after animation
            // Must change focus!
            var $target = $(target);
            $target.focus();
            if ($target.is(":focus")) { // Checking if the target was focused
              return false;
            } else {
              $target.attr('tabindex', '-1'); // Adding tabindex for elements not focusable
              $target.focus(); // Set focus again
            };
          });
        }
      }
    });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="article-links">
  <p class="active"><a href="#link-one">US Dollar rates and purchasing power are in all time low</a></p>
  <p><a href="#link-two">Huge institutional interest</a></p>
  <p><a href="#link-three">Strong fundamental growth and usage on overall blockchain ecosystem</a></p>
</div>

【问题讨论】:

  • 您的代码正在运行。你在期待什么?

标签: javascript jquery wordpress


【解决方案1】:

您的代码有效。如果有明显的变化,它可能会更加明显。我已经为活动类设置了样式以增加字体大小。

jQuery(document).ready(function($) {

  //you can now use $ as your jQuery object.
  $('div p').click(function() {
    $(this).addClass('active').siblings().removeClass('active');
  })

  // Select all links with hashes
  $('a[href*="#"]')
    // Remove links that don't actually link to anything
    .not('[href="#"]')
    .not('[href="#0"]')
    .click(function(event) {
      // On-page links
      if (
        location.pathname.replace(/^\//, '') == this.pathname.replace(/^\//, '') &&
        location.hostname == this.hostname
      ) {
        // Figure out element to scroll to
        var target = $(this.hash);
        target = target.length ? target : $('[name=' + this.hash.slice(1) + ']');
        // Does a scroll target exist?
        if (target.length) {
          // Only prevent default if animation is actually gonna happen
          event.preventDefault();
          $('html, body').animate({
            scrollTop: target.offset().top
          }, 1000, function() {
            // Callback after animation
            // Must change focus!
            var $target = $(target);
            $target.focus();
            if ($target.is(":focus")) { // Checking if the target was focused
              return false;
            } else {
              $target.attr('tabindex', '-1'); // Adding tabindex for elements not focusable
              $target.focus(); // Set focus again
            };
          });
        }
      }
    });
});
.active {
font-size: 24px
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="article-links">
  <p class="active"><a href="#link-one">US Dollar rates and purchasing power are in all time low</a></p>
  <p><a href="#link-two">Huge institutional interest</a></p>
  <p><a href="#link-three">Strong fundamental growth and usage on overall blockchain ecosystem</a></p>
</div>

【讨论】:

  • 是的,但我不仅需要点击,我还需要活动类来滚动
  • 好的,我重新阅读了您的问题,这更有意义。它很快变得复杂。有关更多详细信息,请参阅此帖子。 stackoverflow.com/questions/6271237/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多