2017-03-07 91 views
0

每當它從一個div轉換到另一個div時,我需要將我的自動滾動功能抵消約50-100px。如何抵消我的自動滾動?

下面的腳本是我正在使用的。當我點擊一個鏈接時,它會平滑地將我滾動到相關Div的頂部。

但是,我在我的網站頂部有一個粘性標題,所以它總是覆蓋你轉換到的div。

是否有無論如何我可以設置過渡到div的頂部,但然後抵消它的-100px?

我的代碼如下。

$(document).ready(function(){ 
    $('a[href^="#"]').on('click',function (e) { 
     e.preventDefault(); 

    var target = this.hash; 
    var $target = $(target); 

    $('html, body').stop().animate({ 
     'scrollTop': $target.offset().top 
    }, 900, 'swing', function() { 
     window.location.hash = target; 
    }); 
}); 
}); 
+0

你可能指的是設置'的z-index:-100px'? – Morgs

+0

不完全。 我的意思是當我點擊一個鏈接,頁面滾動到選定div的頂部時,它不應該完全滾動到div的頂部,而是上面的100px。 原因是我有一個高度爲100px的粘性標題。這個粘頭應該始終顯示,所以改變Z-index並不是我所追求的。 我寧願自動滾動停止在每個div上方100px,所以當您滾動到它時,標題不會覆蓋它。 – Pierce

+0

查看答案... – Morgs

回答

0

好了,所以從您的評論這裏是你可以嘗試什麼:

$('html, body').stop().animate({ 
     'scrollTop': ($target.offset().top - 100) // 100 is hard coded though you can make it dynamic if you know identifier of your sticky div like so: ($target.offset().top - $("#sticky-div").outerHeight()) 
    }, 900, 'swing', function() { 
     window.location.hash = target; 
}); 
+0

完美謝謝!我沒有意識到這很簡單。 – Pierce

+0

酷我很有幫助... – Morgs