2017-01-04 4 views
1

をバックナビゲートするときに、トリガからアニメーションをスクロール:防止は、私は自動的にページを最初の負荷上のビットをスクロールするには、次のコードを使用して歴史の中で

$(document).ready(function(){ 

    $("body,html").delay(1000).animate({scrollTop: 300}, 1000); 

}); 

ただし、ユーザー手動でスクロールページやリンクをクリックした場合彼が歴史の中に戻ってくるなら、そのリンクに戻ることができるようにしたいと思います。現在、ユーザーが戻ると、アニメーションが再びトリガーされ、代わりにページが上部+ 300にスクロールされ、ワー​​クフローが中断されます。

+1

'scrollTop'がゼロであるかどうかをチェックし、その後にのみ自動スクロールをトリガーする条件を追加できます。 –

+0

ナビゲーションの前に最後のページ訪問のローカル記憶域にユーザーのスクロールトップの位置を維持することができます。 – Jai

+0

@MohitBhardwaj、それは最も簡単に聞こえる、答えを投稿してください。 –

答えて

2

あなたはscrollTopスプライトがゼロであり、唯一、自動スクロールトリガするかどうかをチェックする条件を追加することができますまだ

$(document).ready(function(){ 
    if($(window).scrollTop() === 0){ 
    $("body,html").delay(1000).animate({scrollTop: 300}, 1000); 
    }//if 
});// document ready 

またはそれ以上を:

$(document).ready(function(){ 
    setTimeout(checkAndScroll, 1000); 
});// document ready 

function checkAndScroll(){ 
    if($(window).scrollTop() === 0){ 
    $("body,html").animate({scrollTop: 300}, 1000); 
    } 
}//checkAndScroll() 

この第二のアプローチは、またの世話をしますがユーザーが1秒前にスクロールを開始すると、

関連する問題