Smooth Scroll 块锚 link 到其他页面
Smooth Scroll blocks anchor link to other page
我正在我的投资组合网站上工作,但我没有让锚 link 工作。
在网站上点击案例查看详细信息,然后我想 link 返回我网站的投资组合部分。我使用锚点来实现此目的,但我的平滑滚动将锚点 link 阻止到另一个页面。 (当我只是 link 到索引时我确实工作,但当我添加锚点时没有工作并且当我删除平滑滚动时它也工作)
有谁知道我该如何解决这个问题?
HTML:
<div class="menubalk" id="basic-menubalk">
<!-- logo -->
<a href="../index.html" class="logo-link">
<div class="logo"></div>
</a>
<ul class="menu" id="basic-menu">
<li><a href="../index.html#portfolio" id="margin-menu-rechts">Terug</a></li>
</ul>
</div>
Javascript:
$(document).ready(function(){
"use strict";
$("a").on('click',function(event) {
if (this.hash !== "") {
event.preventDefault();
var hash = this.hash;
$('html, body').animate({
scrollTop: $(hash).offset().top
}, 800, function(){
window.location.hash = hash;
});
}
});
});
问题是您的 JavaScript 代码中的条件。 if (this.hash !== "") {
将对每个包含散列的 link 求值为 true,而不仅仅是当前页面上的散列。
您可以使用:
if (this.attributes.href.value.substr(0, 1) === '#') {
此外,我根本不会使用那个 jQuery 脚本来实现平滑滚动。有一个 W3 标准已经在某些浏览器(例如 Firefox)中运行。对于不支持它的浏览器,您可以使用 polyfill(例如 iamdustan/smoothscroll)。
我正在我的投资组合网站上工作,但我没有让锚 link 工作。
在网站上点击案例查看详细信息,然后我想 link 返回我网站的投资组合部分。我使用锚点来实现此目的,但我的平滑滚动将锚点 link 阻止到另一个页面。 (当我只是 link 到索引时我确实工作,但当我添加锚点时没有工作并且当我删除平滑滚动时它也工作)
有谁知道我该如何解决这个问题?
HTML:
<div class="menubalk" id="basic-menubalk">
<!-- logo -->
<a href="../index.html" class="logo-link">
<div class="logo"></div>
</a>
<ul class="menu" id="basic-menu">
<li><a href="../index.html#portfolio" id="margin-menu-rechts">Terug</a></li>
</ul>
</div>
Javascript:
$(document).ready(function(){
"use strict";
$("a").on('click',function(event) {
if (this.hash !== "") {
event.preventDefault();
var hash = this.hash;
$('html, body').animate({
scrollTop: $(hash).offset().top
}, 800, function(){
window.location.hash = hash;
});
}
});
});
问题是您的 JavaScript 代码中的条件。 if (this.hash !== "") {
将对每个包含散列的 link 求值为 true,而不仅仅是当前页面上的散列。
您可以使用:
if (this.attributes.href.value.substr(0, 1) === '#') {
此外,我根本不会使用那个 jQuery 脚本来实现平滑滚动。有一个 W3 标准已经在某些浏览器(例如 Firefox)中运行。对于不支持它的浏览器,您可以使用 polyfill(例如 iamdustan/smoothscroll)。