2014-10-22 75 views
1

是我處理的結構是這樣不起作用問題是#gallery在頁面加載後加載,整個頁面的高度發生變化。鏈接僅滾動到#footer#gallery加載之前的位置。鏈接與ID,如果頁面高度動態變化

我使用的畫廊的例子:http://tympanus.net/Development/GammaGallery/

,我使用,使平滑滾動jQuery代碼:

$(document).ready(function() { 
    function filterPath(string) { 
    return string 
     .replace(/^\//,'') 
     .replace(/(index|default).[a-zA-Z]{3,4}$/,'') 
     .replace(/\/$/,''); 
    } 
    $('a[href*=#]').each(function() { 
    if (filterPath(location.pathname) == filterPath(this.pathname) 
    && location.hostname == this.hostname 
    && this.hash.replace(/#/,'')) { 
     var $targetId = $(this.hash), $targetAnchor = $('[name=' + this.hash.slice(1) +']'); 
     var $target = $targetId.length ? $targetId : $targetAnchor.length ? $targetAnchor : false; 
     if ($target) { 
     var targetOffset = $target.offset().top; 
     $(this).click(function() { 
      $('html, body').animate({scrollTop: targetOffset}, 600); 
      return false; 
     }); 
     } 
    } 
    }); 
}); 

回答

1

獲取.offset()當事件處理函數被調用簡單地通過將您的targetOffset賦值放入函數中:

$(this).click(function() { 
    var targetOffset = $target.offset().top; 
    $('html, body').animate({scrollTop: targetOffset}, 600); 
    return false; 
});