さてシナリオはこちらです。アンカーリンクを使用している可能性のあるセクションがある1ページのウェブサイトがあります。ユーザーがセカンダリレイアウト(ページ)で、クリックして再びメインページのセクションに移動すると、何らかの理由でスクロールが発生するまでグラフィックが正しく読み込まれません。メインレイアウトが読み込まれるたびに、それがどのアンカーに読み込まれるかに関係なく、ページを1ピクセル上または下にスクロールするだけです。
$.scrollTo({ top: '+=100px', left: '+=0px' }, 800);
私は上記を試しましたが、このコードはユーザーを上から100ピクセルだけ取得します。私はそれが起こりたくありません。つまり、上からではなく、ユーザーが画面上のどこにいても。
jquery scrollTop()を使用して、スクロール位置を現在のスクロール位置+ 1に設定します。
$(window).scrollTop($(window).scrollTop()+1);
JQueryオーバーヘッドのない純粋なJavaScriptソリューション:
window.scrollY += 100;
JQuery(および派手なアニメーション)の場合:
var cur = $(window).scrollTop();
$(window).animate({scrollTop: cur + 100});
同様の問題があります。 1ピクセル下にスクロールしてから1ピクセル上にスクロールしたいので、ユーザーは何も気付かないでしょう。これは私がしました:
window.scrollBy(0, 1); // 0 pixels horizontal and 1 pixel down
window.scrollBy(0, -1); // 0 pixels horizontal and 1 pixel up
更新:しかし、代わりにJQueryを使用する可能性があります。必要なのは、スクロールイベントを発生させることだけです。これを行うには、次のようにします。
$(window).scroll();
$("html, body").animate({scrollTop: ($(window).scrollTop() + 1)});