无法在smoothscroll jquery上设置偏移值

时间:2015-04-12 09:12:24

标签: jquery offset

我使用此代码进行smoothscroll到目标链接,但我无法将偏移值top设置为100px

$(function() {
  $('a[href*=#]:not([href=#])').click(function() {
    if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'') && location.hostname == this.hostname) {
      var target = $(this.hash);
     target = target.length ? target : $('[name=' + this.hash.slice(1) +']');
      if (target.length) {
        $('html,body').animate({
         scrollTop: target.offset().top
       }, 1000);
        return false;
      }
    }
  });
});

1 个答案:

答案 0 :(得分:0)

我自己已经明白了。所以我想分享一下。

    $(function() {
   $('a[href*=#]:not([href=#])').click(function() {
    if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'') && location.hostname == this.hostname) {
      var target = $(this.hash);
      var target_pos = (target.length > 0) ? target.offset().top : 0;
        var rhd = $('.navtop');
        var rhd_height = (rhd.length > 0) ? rhd.outerHeight() : 190;//change this value to get your desired offset value
              target = target.length ? target : $('[name=' + this.hash.slice(1) +']');
              target_pos -= rhd_height;

        if (target_pos > 0) {

           $('html,body').animate({

              scrollTop: target_pos

           }, 1000);

           return false;

        }
    }
  });
});

我尝试设置偏移值到我的固定导航栏顶部。对我来说工作没问题。