Jquery scrollTop在滚动后重置到原始位置

Jquery scrollTop在滚动后重置到原始位置,jquery,html,Jquery,Html,contactlocation.hash可以工作,但是about将重置为刷新页面的原始位置。有什么想法吗 这并不是整个HTML,只是页面将在其中滚动,以便想象上面更多的内容 if(location.hash==“#关于”){ $('html,body')。设置动画({ scrollTop:$(“.landing section”).offset().top-50     }, 500); } if(location.hash==“#联系”){ $('html,body')。设置动画({ scr

contactlocation.hash可以工作,但是about将重置为刷新页面的原始位置。有什么想法吗

这并不是整个HTML,只是页面将在其中滚动,以便想象上面更多的内容

if(location.hash==“#关于”){
$('html,body')。设置动画({
scrollTop:$(“.landing section”).offset().top-50
    }, 500);
}
if(location.hash==“#联系”){
$('html,body')。设置动画({
scrollTop:$(“.list节”).offset().top-50
    }, 800);
}

关于
  • “知识本身是一种美德,是一种美德,是一种美德,是一种美德,是一种美德,是一种美德,是一种美德,是一种美德,是一种美德,是一种美德。”有时,如果你不自以为是,就必须为自己的行为负责。”

  • “知识本身是一种美德,是一种美德,是一种美德,是一种美德,是一种美德,是一种美德,是一种美德,是一种美德,是一种美德,是一种美德。”有时,如果你不自以为是,就必须为自己的行为负责。”

  • “知识本身是一种美德,是一种美德,是一种美德,是一种美德,是一种美德,是一种美德,是一种美德,是一种美德,是一种美德,是一种美德。”有时,如果你不自以为是,就必须为自己的行为负责。”


脚本在哪里声明?您是否在页面完全加载后执行此代码

理想情况下,在DOM完全加载后,您将希望执行此类操作。通过这样做:

$.ready(function() {
    //Your code here
})

或者在
标记的末尾,确保元素(例如“.contact”、“.landing section”)在脚本尝试滚动到它们之前存在于DOM中。

您尝试滚动到具有类名
的元素。contact
,但您的元素都没有这样的类

我添加了一个带有
.contact
类的元素。我还将锚点单击与您希望在单击锚点(滚动)时发生的操作绑定在一起

下面是更新后的代码,为您的JavaScript增加了一些健壮性,现在可以在DocumentReady上运行

$(文档).ready(函数(){
//添加平滑滚动到所有链接
$(“a”)。在('click',函数(事件){
//在覆盖默认行为之前,请确保this.hash具有值
如果(this.hash!==“”){
//防止默认锚点单击行为
event.preventDefault();
//存储散列
var hash=this.hash;
如果(散列=“#关于”){
$('html,body')。设置动画({
scrollTop:$(“.landing section”).offset().top-50
}, 500);
}
如果(散列=“#联系”){
$('html,body')。设置动画({
scrollTop:$(“.contact”).offset().top-50
}, 800);
}
}
});
});

关于
  • “知识本身是一种美德,是一种美德,是一种美德,是一种美德,是一种美德,是一种美德,是一种美德,是一种美德,是一种美德,是一种美德,是一种美德。” 除了偶尔因不谨慎而被拘留外,还必须因职权上的过失而受到惩罚。”

  • “知识本身是一种美德,是一种美德,是一种美德,是一种美德,是一种美德,是一种美德,是一种美德,是一种美德,是一种美德,是一种美德,是一种美德。” 除了偶尔因不谨慎而被拘留外,还必须因职权上的过失而受到惩罚。”

  • “知识本身是一种美德,是一种美德,是一种美德,是一种美德,是一种美德,是一种美德,是一种美德,是一种美德,是一种美德,是一种美德,是一种美德。” 除了偶尔因不谨慎而被拘留外,还必须因职权上的过失而受到惩罚。”


联系人
页面重置为顶部的原因是它正在向下滚动,一旦页面完全加载,它将返回顶部。为了解决这个问题,我只需在Jquery中添加一个元素,等待页面的代码加载完毕

$(窗口).bind(“加载”,函数(){
if(location.hash==“**位置哈希**”){
$('html,body')。设置动画(