Animate()滚动不允许看到标题

时间:2019-06-07 16:05:23

标签: javascript jquery

我使菜单变粘了,但是我现在遇到的问题是菜单不允许我看到类别的标题。您可以在这里看到它

http://jisparking.cl

我想知道如何将滚动动画稍微移到顶部以避免 菜单位于类别标题上方。

我的代码是这样的:

  $(".nav li 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
        });

谢谢!

1 个答案:

答案 0 :(得分:0)

您可以简单地从scrollTop: $(hash).offset().top中减去一个值,例如scrollTop: $(hash).offset().top - 50

当然,这会中断第一个链接,因为它会给出负值。可能的解决方案是

scrollTop: Math.max($(hash).offset().top - 50, 0)

(如果值为负Math.max则会返回0

这可以对您的代码进行尽可能少的更改,但是我认为可能还有其他方法可以实现您想要的目标。