Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Jquery滚动到ID或锚点-滚动到顶部(如果已经存在)?_Javascript_Jquery_Html_Css_Scroll - Fatal编程技术网

Javascript Jquery滚动到ID或锚点-滚动到顶部(如果已经存在)?

Javascript Jquery滚动到ID或锚点-滚动到顶部(如果已经存在)?,javascript,jquery,html,css,scroll,Javascript,Jquery,Html,Css,Scroll,我一直在寻找原因和/或解决方案。我一直在用 $("#content").animate({scrollTop:$(#elementId).offset().top-183}, 600); 用于在中平滑滚动到ID。183是一个偏移量,因此我的元素位于顶部。它工作,但如果我再次点击它,当我已经在那里,它会卷回顶部。如果我在元素下方单击它,它将无法正常工作。只有当我在元素上方时,它才能正常工作 在所有情况下,“scrolltop”不是正确的jQuery例程吗?或者我需要确定元素是在我的上方还是下方,

我一直在寻找原因和/或解决方案。我一直在用

$("#content").animate({scrollTop:$(#elementId).offset().top-183}, 600);
用于在
中平滑滚动到ID。183是一个偏移量,因此我的元素位于顶部。它工作,但如果我再次点击它,当我已经在那里,它会卷回顶部。如果我在元素下方单击它,它将无法正常工作。只有当我在元素上方时,它才能正常工作


在所有情况下,“scrolltop”不是正确的jQuery例程吗?或者我需要确定元素是在我的上方还是下方,并相应地使用不同的命令吗?似乎没有太多关于这种行为的文档,我只发现有几个人提到过它。也许我错过了解决这个问题的简单方法?我将尝试制作一个JSFIDLE来演示这种行为,但我想可能有人在这里看到过这种情况,并提出了解决方法?

这可能会有所帮助,我通常在我的站点中使用这个简单的javascript代码片段来实现scrolltotop/backtotop功能

HTML

<body id="top">

<a href="#top" onclick="scrollToTop();return false">Back to Top &uarr;</a>


JS

<script>
var timeOut;
function scrollToTop() {
    if (document.body.scrollTop!=0 || document.documentElement.scrollTop!=0){
        window.scrollBy(0,-50);
        timeOut=setTimeout('scrollToTop()',10);
    }
    else clearTimeout(timeOut);
}
</script>

var超时;
函数scrollToTop(){
if(document.body.scrollTop!=0 | | document.documentElement.scrollTop!=0){
滚动窗口(0,-50);
超时=设置超时('scrollToTop()',10);
}
else clearTimeout(超时);
}

滚动
#content
中元素的偏移量时,看起来会发生变化。 这就是为什么目标图元已在视图中时,其顶部偏移量为零。要获得
scrollTop
的正确值,必须将
scrollTop
的当前值添加到偏移量中

$('#滚动')。单击(函数(){
$(“#内容”)。动画({scrollTop:$(“#内容”).scrollTop()+$('#目标').offset().top-10},600);
});
#内容{
最大高度:100px;
溢出:滚动;
}

Lorem ipsum dolor sit amet,是一位杰出的献身者。请不要把所有的元素都浪费掉。
梅塞纳斯是埃吉斯塔斯·莱克图斯。塞德·亨德雷雷特是罗恩卡斯广场上的人。在iaculis dapibus nulla中,ut iaculis metus
瓦里乌斯在。纳勒姆·埃利芬德·费利斯·拉库斯,埃吉特·维韦拉·佩伦茨克·帕特。同侧前庭
第一个是在福西布斯或卢克图斯和乌尔特里斯的库里亚库里亚;阿利奎姆·乌尔特里斯,阿库·普雷蒂姆·亨德雷特
拉奥里特,安特·努克·莫利斯·奥奇,在《爱的源泉》中。佩伦茨克居民莫比·特里斯蒂克
塞内特斯、内特斯和马莱苏阿达是著名的埃吉斯塔斯土尔皮斯人。这是一句名言,一句轻蔑的话
元素在。整数ullamcorper mauris id enim facilisis finibus。犹他州腔隙元素
奥雷姆·廷西登教堂。Suspendisse ac finibus sapien。
你好,世界!
Lorem ipsum dolor sit amet,是一位杰出的献身者。请不要把所有的元素都浪费掉。
梅塞纳斯是埃吉斯塔斯·莱克图斯。塞德·亨德雷雷特是罗恩卡斯广场上的人。在iaculis dapibus nulla中,ut iaculis metus
瓦里乌斯在。纳勒姆·埃利芬德·费利斯·拉库斯,埃吉特·维韦拉·佩伦茨克·帕特。同侧前庭
第一个是在福西布斯或卢克图斯和乌尔特里斯的库里亚库里亚;阿利奎姆·乌尔特里斯,阿库·普雷蒂姆·亨德雷特
拉奥里特,安特·努克·莫利斯·奥奇,在《爱的源泉》中。佩伦茨克居民莫比·特里斯蒂克
塞内特斯、内特斯和马莱苏阿达是著名的埃吉斯塔斯土尔皮斯人。这是一句名言,一句轻蔑的话
元素在。整数ullamcorper mauris id enim facilisis finibus。犹他州腔隙元素
奥雷姆·廷西登教堂。Suspendisse ac finibus sapien。

滚动至#target
您能给我们演示一下吗?应该很好。。。