我有一个PHP网站,其导航栏在首页上具有指向ID(各节)的链接。当您单击链接时,它会向下滚动到该部分,一切都会按预期进行。
但是,导航栏还具有指向其他页面的链接,并且如果您不在主页上,并且单击这些ID hrefs之一,它不会向下滚动到该部分,而只是转到主页顶部。
我尝试在href中添加home.php#idname或./#idname,但似乎都不起作用。我猜想可能需要获取baseUrl并将其以某种方式添加到href中,但是我不确定。我的Javascript / jQuery并不是最好的。
当您在另一页上时,如何使ID链接转到并滚动至所需部分?我查了许多相关主题,似乎什么也没用。
下面是我的代码:
$(document).ready(function() {
$('#navm li a').click(function(e) {
var href = $(this).attr('href');
var autoScrollPosition = parseInt($(href).offset().top - $('#header').outerHeight());
if (window.location.hash) {
$(scrollCheck).stop().animate({
scrollTop: autoScrollPosition
}, {
duration: 750,
easing: 'easeInOutExpo',
queue: false,
complete: function() {
setTimeout(function() {
enable_scroll();
}, 50);
}
});
}
});
});
<div id="navm">
<ul>
<li><a href="#description" rel="nofollow">Description</a></li>
<li><a href="#specification" rel="nofollow">Specification</a></li>
<li><a href="#downloads" rel="nofollow">Downloads</a></li>
<li class="insight">Insights<span></span>
<ul class="articles-nav">
<li><a href="insights/">Article 1</a></li>
</ul>
</li>
</ul>
</div>
<div id="description"></div>
<div id="specification"></div>
<div id="downloads"></div>