在導航到該元素之後,<a>
元素的累積offsetTop
和scrollTop
的值之間是否存在可預測的關係?javascript:scrollTop和offset之間的區別頂部
我曾天真地認爲他們會是平等的,但我遇到了scrollTop
較大(滾動位置在頁面下方)的情況。
下面定義的問題更準確地說:
function TotalOffsetTop (e)
{
var offset = 0;
do
offset += e.offsetTop;
while (e = e.offsetParent);
return offset;
}
//navigate to MyBookmark
location.hash = "#MyBookmark"
var BookmarkOffsetTop = TotalOffsetTop(document.getElementByID("MyBookmark"));
var CurrentPosition = document.getElementsByTagName("body")[0].scrollTop;
if (CurrentPosition != BookmarkOffsetTop) alert("Design Flaw!");
我的最終目標是要找到最近的<a>
標籤,其開始高於當前視口的頂部。這樣我就可以向後(向前)跳轉到相對於文檔當前位置的書籤。
是否有其他一些措施,我應該使用,而不是scrollTop
和cummulative offsetTop
?
我正在探索使用Chrome的問題,但我想最終找到一些適用於至少幾個現代瀏覽器的東西。我試圖避免jQuery。
+1試圖避免的jQuery –
希望你能接受的答案沒有? – Sampath