2012-05-19 74 views
2

取代窗口跳轉,以便錨點位於頁面頂部,我希望它位於頁面頂部以下100px。我不想動畫,我寧願它沒有跳兩次。jQuery跳轉到錨點上方100px

我希望它是一個通用的解決方案。

這是我曾嘗試,但它似乎並沒有工作...

$("a.inpage").click(function (e) { 
    e.preventDefault(); 
    $(":target").each(function() { 
     var targetpos = $(this).position(); 
     var scrollpos = targetpos.top - 100; 
     window.scrollTo(0,scrollpos); 
    }) 
} 

謝謝, 大衛

+0

什麼是:目標?選擇?沒有在jQuery api上找到它 – user907860

回答

0

:目標CSS3選擇匹配的元素,其id是URL的一部分。但是,你正在使用ev.preventDefault(),所以你不遵循鏈接,URL不會改變

這是更好地做像水木清華

$("a.inpage").click(function (e) { 
    e.preventDefault(); 
    var targetpos = $($(this).attr('href')).position(); // note this line 
    var scrollpos = targetpos.top - 100; 
    window.scrollTo(0,scrollpos); 
} 
+0

如果我還想讓「#name」在點擊後出現在URL中,那麼該怎麼辦? – hoytdj