jQuery自动滚动到不同页面的ID

时间:2017-01-19 21:13:20

标签: javascript jquery html

我在stackoverflow上看到过这个问题但是在那里使用的代码有所不同,我并没有真正理解它。因此,当网站来自另一个页面时,我想让网站滚动到div。

$(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 -70 
      }, 800, function(){

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

此代码在首页中有效,滚动顺畅,但在从其他页面点击时无效。

1 个答案:

答案 0 :(得分:0)

这将在加载页面时将正文滚动到#someDiv顶部偏移:

$(document).ready(function(){

    $('html, body').animate({
        scrollTop: $('#someDiv').offset().top - 70
    }, 800);

});

如果referrer不是http://www.example.com

$(document).ready(function(){

    if (document.referrer !== "http://www.example.com") {
        $('html, body').animate({
            scrollTop: $('#someDiv').offset().top - 70
        }, 800);
    }

});

这来自其他页面:

$(document).ready(function(){

    if(document.referrer != '' &&  document.referrer != location.href ){
        $('html, body').animate({
            scrollTop: $('#someDiv').offset().top - 70
        }, 800);
    }
});