2014-10-09 89 views
0

我遇到問題。我使用一個頁面設計的朋友,頂部有一個固定的浮動菜單。我遇到的問題是,當我點擊一個鏈接時,它會向下滾動,但偏移量不正確。大多數情況下,它會向下滾動一些,覆蓋菜單下方的內容。我試圖實現的是滾動停止在div正好在我的菜單欄下方。另一個問題是,當兩部分之間的空間太窄時,它不會向下滾動。它嘗試但不知何故只移動了幾個像素然後停止。我可以想象這兩者都與抵消問題有關。單頁滾動錯誤偏移浮動菜單欄

對不起,英語不是我的母語。

這是我到目前爲止。帶有window.location.hash的標準滾動功能。目標是分散在整個網站的div。

$(document).ready(function() { 
     $('a[href^="#"]').on('click', function (e) { 
      e.preventDefault(); 
      var target = this.hash; 
      var t = $(this.hash).offset().top; 
      $('.wrapper').animate({ 
      scrollTop: t, 
      }, 1000, function() { 
       window.location.hash = target; 
      }); 
     }); 
    }); 

你可以看到問題的一個例子生活:http://rolfvohs.com/

我試過到目前爲止是使用add.class功能到div與微胖綁定點擊一個鏈接時。它以某種方式工作,但創造了一個尷尬的空間。我也嘗試將div放在不同的位置,但這並不能解決這個問題,只是將它進一步搞亂了。

我將不勝感激。

回答

0
window.location.hash = target; 

默認移動滾動到div位置和你設置散列變化前頂偏所以首先它的變化,它移動到DIV位置偏移之後。

首先嚐試刪除行「window.location.hash = target;」從代碼 或 移動「window.location.hash = target;」在「$('。wrapper')。animate({})」之上,它將起作用。