2017-03-14 7 views
1

新しいページにリダイレクトされる前に、リンクをクリックしたときにJavaScriptを少し使ってフェードアウトします。私が抱えている問題は、ページがフェードアウトすることですが、ページがリダイレクトされる前に、すばやく表示に戻ってきます。これはページリダイレクトを意味するため、CodePenの例を提供することは困難です。新しいページがロードされる前にページがフェードアウト(しかし、ビューに戻る)Safariのバックボタンの問題

これは私が含まれているnewpage機能のために起こるようです。私はこれを元々使っていたとは思わないが、ブラウザの戻るボタン、特にiOSのサファリでは空白のページが表示されることがあるので、時にはそれを入れる必要があった。

$(document).ready(function() { 

    $('[href*="website-url.com/"]').click(function(event) { 
     event.preventDefault(); 
     newLocation = this.href; 
     $('body').fadeOut(150, newpage); 
    }); 

    function newpage() { 
     window.location = newLocation; 
     $('body').show().removeClass('show-nav').addClass('hide-nav'); 

     setTimeout(function() { 
      $('body').removeClass('hide-nav'); 
     }, 500); 
    } 
}); 

.removeClass('show-nav').addClass('hide-nav');ビットは、私が使用している私のフルページのナビゲーションを参照:

これは私が現在使用しているスクリプトです。 Safariで戻るボタンをクリックすると、デフォルトでnavが開いた状態でページがロードされます。これはそれを強制的に閉じることです - もう一度、それは隠される前にちょっと「ジャンプ」しますが、わずか数秒であれば、それを垣間見ることができます。

誰かがこれで助けてくれることを願っています!

答えて

0

は、いくつかのテストの後、私は解決策を見つけた: ちょうど追加:

$("body").html(""); 

これは、体を空にしますので、何もその後、表示されませんでした。ここで

はあなたのコードは次のとおりです。

$(document).ready(function() { 

    $('[href*="website-url.com/"]').click(function(event) { 
     event.preventDefault(); 
     newLocation = this.href; 
     $('body').fadeOut(1500, newpage); 
    }); 

    function newpage() { 
     $("body").html(""); 
     window.location = newLocation; 
     $('body').show().removeClass('show-nav').addClass('hide-nav'); 

     setTimeout(function() { 
      $('body').removeClass('hide-nav'); 
     }, 500); 
    } 
}); 
+0

感謝の男、私はそれを見ることができる唯一の問題は、それが今、Safariで空白の黒を表示すること戻るボタンのオリジナル問題を持ち帰っている(と私は推測していますiOS Safari)。最後の 'setTimeout'関数と' .removeClass( 'show-nav')。addClass( 'hide-nav');はこれを参照しますが、現在は動作しません。 – user1406440

+0

HTML/CSSを投稿してください。 JsFiddleは面白いかもしれません –

+0

CodePen/JsFiddleの唯一の問題は、ページの変更をシミュレートできないと思いますか? – user1406440

関連する問題