我正在使用w3school https://www.w3schools.com/howto/howto_css_smooth_scroll.asp中的js代码

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
    $(document).ready(function(){
      // Add smooth scrolling to all links
      $("a").on('click', function(event) {

        // Make sure this.hash has a value before overriding default behavior
        if (this.hash !== "") {
          // Prevent default anchor click behavior
          event.preventDefault();

          // Store hash
          var hash = this.hash;

          // Using jQuery's animate() method to add smooth page scroll
          // The optional number (800) specifies the number of milliseconds it takes to scroll to the specified area
          $('html, body').animate({
            scrollTop: $(hash).offset().top
          }, 800, function(){

            // Add hash (#) to URL when done scrolling (default click behavior)
            window.location.hash = hash;
          });
        } // End if
      });
    });
</script>


但是令我惊讶的是,我发现平滑滚动可以在10次中进行6次。我清除了浏览器的缓存,但问题仍然存在。
为什么会这样呢?
谁能帮我?

最佳答案

您是否尝试过仅使用CSS

scroll-behavior: smooth;


https://css-tricks.com/snippets/jquery/smooth-scrolling/

https://www.w3schools.com/howto/tryit.asp?filename=tryhow_css_smooth_scroll

关于javascript - 为什么平滑滚动是可行的,但仅在某些时候可行?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59561396/

10-11 11:09