我有一个像<a href='#overview'>Overview</a>
这样的链接和一个像<section id="overview" class="community"></section>
这样的html部分
我有这个jquery代码,可以滚动到我点击链接的那个部分,并且不会在网址或地址栏中提到#overview。
$(function() {
$('a[href*=#]:not([href=#])').click(function() {
if (location.pathname.replace(/^\//, '') == this.pathname.replace(/^\//, '') && location.hostname == this.hostname) {
var target = $(this.hash);
target = target.length ? target : $('[name=' + this.hash.slice(1) + ']');
if (target.length) {
$('html,body').animate({
scrollTop: target.offset().top - 115
}, 2000);
return false;
}
}
});
});
我的问题是,它没有...它会滚动到页面底部到该部分顶部的那个部分,#overview出现在网址中我做错了什么以及如何修复这个 ?我期待发生的是当我点击链接时,从链接(位于页面顶部)滚动到该部分的顶部。
问题可能是我的网址如此:site.php?string=aaaa
答案 0 :(得分:0)
如果可以的话,你可以清理你的html并只处理类,put和.internal-click
在你想要这个功能的每个链接上,以及一个类,如概览,对应id
(概述)去哪里。这样你就不会重复代码。
<a href='#' class="overview internal-click">Overview</a>
$('.internal-click').click(function() {
var place_to_go = $(this).attr("class").split(' ')[0];
$('html, body').animate({
scrollTop: $('#'+place_to_go).offset().top
}, 2000);
});