Jquery Smooth Scroll仅在内部工作

时间:2014-07-16 06:59:07

标签: 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 > $(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。

这就是我想要的:这只适用于同一页面。我希望它可以跨多个页面工作。

以下是我的示例:This page,应加载this page,然后滚动到锚点。

但相反,它跳了起来。我应该在这段代码中添加什么?作为一个图形和html / css唯一的设计师,javascript对我来说是火箭科学。如果你保持愚蠢,我会很感激。

1 个答案:

答案 0 :(得分:1)

坚持使用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>

该脚本将导致ID为“start”的对象(或具有ID“goats”) 您可以在第2页上定义目标,为您的部门添加ID:

<div id="start"> Some content </div>
<div id="goats"> Goat content </div>