我的网站首页上有锚链接,链接到页面的不同部分。我遇到了辅助页面的问题,每当他们点击引用主页面上的部分的锚链接时,它就不会将它们带到该部分。我试图使用完整的URL http://www.website.com/index.php#1,但只需要访问主页但不会触发锚链接的位置。我有什么遗失的吗?
我使用以下Jquery进行平滑滚动,并在某个部分处激活菜单翻转。
<script>
var timerid; //Used to fire scroll function once after scrolling is done.
$(document).ready(function(){
$("#menu-main-menu a").click(function(e){
e.preventDefault();
$("#menu-main-menu a").removeClass('active');
var id = $(this).attr("href").substring(1);
$("body").animate({
'scrollTop': $("section#" + id).offset().top -133
});
});
$("body").scrollTop(1); //forcing window scroll to execute on page load
$(window).scroll(function(){
clearTimeout(timerid);
timerid = setTimeout(checkactivelink, 50);
});
function checkactivelink()
{
$("section").each(function(){
if($("body").scrollTop() >= $(this).offset().top -133)
{
$("#menu-main-menu a").removeClass('active');
$("#menu-main-menu a[href=#" + $(this).attr("id") + "]").addClass('active');
}
});
}
});
</script>
答案 0 :(得分:0)
尝试替换
$("body").scrollTop(1);
使用:
if(location.hash) {
$("#menu-main-menu a[href='"+location.hash+"']").click();
}
因此,当您在链接中打开带有锚点的页面时,它将模拟单击相应的导航菜单。