2015-02-09 33 views
1

我有一個div元素(ID爲target),其中有幾個錨都有ID。我有一個按鈕連接到一個JavaScript函數通過onclick屬性,讓div元素滾動,以便某個錨點出現在div的頂部位置。該功能是這樣的:如何在元素高度不夠時強制滾動

scrollToTag = function(id){ 
    var target = document.getElementById('target'); 
    var goal = document.getElementById(id); 
    target.scrollTop = goal.offsetTop - target.offsetTop; 
}; 

當DIV(target)的高度是不夠的,我們的目標錨不會去到div的頂部,因爲它不能再繼續滾動。

強迫它滾動的最佳方法是什麼?我想出了一個想法,在div的高度附加一個空白元素,但我不確定這是否合適。有沒有更好的方法來做到這一點?

+0

您可以使用'overflow:auto'包裝器,並將'margin-bottom:100%'設置爲'target'。 – Teemu 2015-02-09 09:05:51

+0

@Teemu這有滾動困難。 – sawa 2015-02-12 18:44:38

+0

我無法想象這會是什麼(類似的樣式對我有用),但似乎你已經有了一個很好的解決方案。 – Teemu 2015-02-12 18:56:35

回答

2

有相當根據您的具體情況幾種不同的方式,但我會建議:after pseudo element

#target:after { 
    content: ''; 
    display: block; 
    height: 100% 
} 

沒有額外的標記,它迫使那裏是在你提到的底部間隙你的問題。

+0

這工作完美。謝謝。 – sawa 2015-02-12 18:44:01

相關問題