2012-05-19 132 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