2017-07-11 9 views
0

ボタンをクリックしてブラウザがシーンの裏でアクションを実行していることを示すときにスピナーを表示しようとしています.Firefoxブラウザのボタンをクリックした直後に表示されますGoogle ChromeブラウザでGoogle Chromeブラウザには8秒の遅延があります。私は、アクションが実行されている間、開発者ツールでそれをデバッグしましたが、ボタンがクリックされたときにクラス属性がHTMLコードに追加されているのがわかります。ここでjqueryはスピンナーをGoogle Chromeのブラウザでゆっくりとレンダリングする

私のマークアップです:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<div id="loadSpinner" style="display:none;"></div> 
 
    <button type="submit" class="btn spinnerEvent" >On</button> 
 
     
 
    <script> 
 
     $(document).on("click", "button.spinnerEvent", function(event){ 
 
      $('#loadSpinner').addClass('show'); //LOADS THE SPINNER 
 
     }); 
 
    </script> 
 

 
    <style> 
 
     #loadSpinner.show{ 
 
      background:#000 url(../images/spinner-small.gif) no-repeat center center; 
 
      background-color: transparent; 
 
      height: 128px; 
 
      width: 128px; 
 
      position: fixed; 
 
      z-index: 1000; 
 
      left: 50%; 
 
      top: 25%; 
 
      margin: -25px 0 0 -25px; 
 
     } 
 
    </style>

+0

あなたのマークアップには存在しない、あなたのJSのコードを参照しています。コードを整理して[mcve]を提供してもらえますか? –

+0

私は実際にjsFiddleで自分のコードをテストして、そのスピナーがボタンクリックのために表示されるのを見ます。なぜアプリケーションに遅延があるのか​​分かりません。 – user1588142

+0

コードはそのまま正常に動作します。あなたのjsfiddleはどこですか? –

答えて

0

私はあなたのコードに若干の変更と作業フィドル作成しました: https://jsfiddle.net/jennifergoncalves/783gyyou/2/

HTML:

が削除をスタイルタグですべてのスタイルを設定する

:そのインラインスタイルとして3210はstyleタグ

<div id="loadSpinner"></div> 
<button type="submit" class="btn spinnerEvent">On</button> 

CSSで定義されているあなたのCSSスタイルよりも優先されます。

#loadSpinner { 
    display: none; 
} 

#loadSpinner.show { 
    background: #000 url(../images/spinner-small.gif) no-repeat center center; 
    background-color: red; /*changed from transparent to red so you can see the div, even though I don't have access to the actual image*/ 
    height: 128px; 
    width: 128px; 
    position: fixed; 
    z-index: 1000; 
    left: 50%; 
    top: 25%; 
    margin: -25px 0 0 -25px; 
    display: block; 
} 

Google Chromeでは、ロード先のdivがボタンをクリックするとすぐに表示されます。

まだ問題が解決しない場合は、回転する画像をページにプリロードしてみてください。単純に、画像そのものに時間がかかることがあり、コードに遅延がないことがあります。ここで

ページのロード後の背景として使用するCSSの画像をプリロードする方法についていくつかのヒントがあります:https://css-tricks.com/snippets/css/css-only-image-preloading/

+0

お返事ありがとうございます。あなたが言ったように、私はまだ遅延を経験しています。私はまた、プリロードイメージを回転させるコードを書くことに成功していません。スピナーイメージのプリロードで私を助けてくれますか?前もって感謝します。 – user1588142

+0

@ user1588142ここに私が試してみたいくつかのヒントがあります:https://css-tricks.com/snippets/css/css-only-image-preloading/あなたのために働くことを願っています。 –

関連する問題