2016-03-24 35 views
1

Turbolinks.visitが呼び出されると、進行状況バーが表示されます。Turbolinks 5:進行状況を表示Bar

手動で表示して非表示にしたいのですが(私のxhr要求の一部が少し長いため)、可能でしょうか?

(Turbolinks 3では、そこTurbolinks.ProgressBar.start)は(だったが、それはパブリックAPIではなかったし、もう動作していない)

答えて

2

Turbolinks 5では、シングルトンコントローラオブジェクトの方がProgressBarインスタンスが深くなっています。以下が動作するはずです:

function safeStartTurbolinksProgress() { 
    if(!Turbolinks.supported) { return; } 
    Turbolinks.controller.adapter.progressBar.setValue(0); 
    Turbolinks.controller.adapter.progressBar.show(); 
} 

function safeStopTurbolinksProgress() { 
    if(!Turbolinks.supported) { return; } 
    Turbolinks.controller.adapter.progressBar.hide(); 
    Turbolinks.controller.adapter.progressBar.setValue(100); 
} 
0

あなたは、任意の時点でTurbolinks.ProgressBar.disable()を行うと、それが離れて行くことができます。あるいは、これらの段階でクラスを追加し、いくつかのCSSウィザードを使用して、独自の進行状況バーを作成することもできます。

if Turbolinks.ProgressBar 
    // Do stuff 

$(document).on 'page:fetch', -> 
    // Do stuff while the fetch is starting 

$(document).on 'page:receive', -> 
    // It's almost done 

$(document).on 'page:change', -> 
    // It's done 

$(document).on 'page:restore', -> 
    // It's really done 
0

Rails 5(Turbolinks 5)では、デフォルトでプログレスバーが有効になっています。 500ミリ秒以上かかるページは自動的に表示されます。

は完全にプログレスバーを無効にするには、隠されたにその可視性のスタイルを設定します。

.turbolinks-progress-bar { 
    visibility: hidden; 
} 

詳細情報here

関連する問題