Javascript Jquery平滑滚动仅在内部工作

Javascript Jquery平滑滚动仅在内部工作,javascript,jquery,html,Javascript,Jquery,Html,我最近问了一个问题,在处理了一段时间之后。。。5个小时(不幸的是严重),我能够顺利滚动到锚。这是我输入的js $(document).ready(function(e) { $(".scroll").click(function(event){ event.preventDefault(); //calculate destination place var dest=0; if($(this.hash).offset().top > $(docum

我最近问了一个问题,在处理了一段时间之后。。。5个小时(不幸的是严重),我能够顺利滚动到锚。这是我输入的js

$(document).ready(function(e) {
$(".scroll").click(function(event){
     event.preventDefault();
     //calculate destination place
     var dest=0;
     if($(this.hash).offset().top > $(document).height()-$(window).height()){
          dest=$(document).height()-$(window).height();
     }else{
          dest=$(this.hash).offset().top;
     }
     //go to destination
     $('html,body').animate({scrollTop:dest}, 1000,'swing');
 });
});
我目前正在使用ID作为锚,但如果您愿意,我也可以切换到NAME

这是我想要的:这只在同一页内有效。我希望它能跨越几页

下面是我的示例:,应该加载,然后滚动到锚点


但相反,它跳了起来。我应该在代码中添加什么?作为一个仅限于图形和html/css的设计师,javascript对我来说是一门火箭科学。因此,如果您保持沉默,我将不胜感激。

坚持使用JS,并传递一个哈希属性:

<a href="http://something.com/some.php#start"> Go to page 2 ( Start ) </a>
<a href="http://something.com/some.php#goats"> Go to page 2 ( Goats ) </a>

并在第2页使用简单的JS进行检查

<script>
    $(document).one("ready",function(){
        if( window.location.hash.length > 0 ){
             $("body, html").animate({scrollTop:$(window.location.hash).position().top},1000);
        }
    });
</script>

$(文档).1(“就绪”,函数(){
如果(window.location.hash.length>0){
$(“body,html”).animate({scrollTop:$(window.location.hash.position().top},1000);
}
});
脚本将导致ID为“start”(或ID为“goes”)的对象 您可以在第2页定义目标,为您的部门添加ID:

<div id="start"> Some content </div>
<div id="goats"> Goat content </div>
一些内容
山羊内容物

问题是,如果你把它建成一个100英尺高的雕像,然后把它推到我的。。。你知道的。难道没有一个只有html的解决方案吗?我刚刚更新了一个JS解决方案,如果你喜欢的话:)第二个解决方案看起来太好了(读:简单),不可能是真的。我是用这个替换第一页上的js代码,还是将它添加到已经存在的js代码中?如果是后者,我应该在哪里添加它?我知道这很烦人,但javascript让我难以置信。JS代码段转到第2页,而我发布的链接转到第1页。正如我所描述的,不要忘记在第二页上标识你的元素。我的元素已经标识了。我已经照你说的做了,试着在第一页删除js,试着在第一页添加你的代码片段,仔细检查我的ID,不起作用,它只是直接跳转。我已将新代码上传到问题中的链接。你能检查一下吗?此外,我当前的js代码没有正确地滚动到第一个锚点(juniorçocuk)。因为页面加载时它已经可见,所以猜测一下。