2017-08-21 10 views
1

scrollify.js最新のページスクロールエフェクトとupdateHashsectionNamefalseに設定されています。スクロールページの更新は同じセクションのままです

ここで私の問題は、ポストページリフレッシュフォーカスは、私が残したのと同じセクションにあります。たとえば、第4セクションで、F5のページをリフレッシュして1番目のセクションに着陸するのではなく、同じ4番目のセクションに着地させたとします。 Even Ctrl + F5 Chromeブラウザではサポートされていません。ここに私のコードです。

$('body').css('overflow', 'hidden'); 
$.scrollify({ 
    section: ".scroll-section", 
    sectionName: false, 
    interstitialSection: "", 
    easing: "easeOutExpo", 
    scrollSpeed: 1100, 
    offset: 0, 
    scrollbars: true, 
    standardScrollElements: "", 
    setHeights: true, 
    overflowScroll: true, 
    updateHash: false, 
    touchScroll: true, 
    before: function(index, section) { 
    var className = '.' + $.scrollify.current().data('section'); 
    $('.sticky-left-nav').find('li').removeClass('active mb30'); 
    $('.sticky-left-nav').find(className).addClass('active mb30'); 

    if (index > 3) { 
     $('body').removeAttr('style'); 
    } else { 
     $('body').css('overflow', 'hidden'); 
    } 
    }, 
    after: function() {}, 
    afterResize: function() {}, 
    afterRender: function() {} 
}); 

助けてください。前もって感謝します。

+0

これはすべてのブラウザのネイティブ動作です。ブラウザはリロード時に常にあなたを最後の位置に戻します。この動作を変更するためのハックを作成することは賢明ではありません。 –

+0

@LukeHaasがあなたの意見を持っています。 –

答えて

1

これはプラグインとは関係ありません。ページoffsetTopが設定されている場合、ブラウザをリロードした後、ブラウザは最後の位置にスクロールします。あなたはそれをライブで見ることができますhere

これは、ページが読み込まれたときにページをスクロールすることで解決できます。

$(window).on('load', function() { 
    setTimeout(function() { 
     $(window).scrollTop(0); 
    }); 
}); 

ライブデモhere

なぜ私たちにsetTimeoutが必要なのかわかりませんが、それが機能する唯一の方法です。

+0

これは、offsetTopを手動で設定したためですか? –

+0

scrollTop(0)を設定すると1つの問題が解決され、別の問題が開かれます。第1セクションに土地をリフレッシュしましょう。しかし、スクロールダウンは3番目のセクションにスクロールアップすると、私はスクロールアップは動作しません! –

+0

この問題で[bin](http://jsbin.com)を作成してデバッグすることはできますか? –

関連する問題