2012-05-13 15 views
0

ボタンのセットから1つをクリックすると、ビデオが再生されるときに画像がポップアップしてからフェードします。問題はそれが最初のクリックで動作することですが、2番目の場合、画像があるdivはの後に、ビデオがロードされた後にになります。動画が読み込まれる前に表示されるようにするにはどうすればよいですか?スクリプト(簡体字)が遊びにビデオdivの前にimg divがロードされていることを確認してください

$('li, .thumbs').on('click', function() { 
    myVideo.load(); 
    myVideo.play(); 
    $('#myVid').bind("loadstart", function() { 
     $('#MyT').fadeIn(0); 
    }); 
    $('#myVid').bind("playing", function() { 
     $('#MyT').fadeOut(500); 
    }); 
});​ 
+0

私の答えはあなたを助けましたか? – gdoron

+0

@gdoronお探ししています。実際のコードは少し乱雑になってきていますので、私はそれを掃除しています.. –

答えて

1

画像のためのonload関数を使用してみてください。これにより、何かが起こる前に画像が確実にロードされます。

I wrote a blog post, how to do that。ビデオロードやその他の機能は、ブログに記載されているonImgLoad関数の中に置くことができます。これにより、画像が読み込まれ、動画が再生される前に表示されます。

+0

大丈夫ですが、これは私には手伝ってくれました!!! –

1

セットタイムアウトです:

$('li, .thumbs').on('click', function() { 
    setTimeout(function(){ 
     myVideo.load(); 
     myVideo.play(); 
    }, 200); // 200 ms, you can custom it as you wish. 

    $('#myVid').bind("loadstart", function() { 
     $('#MyT').fadeIn(0); 
    }); 
    $('#myVid').bind("playing", function() { 
     $('#MyT').fadeOut(500); 
    }); 
});​ 
+0

それは動作しますが、画像が表示される前にムービーが読み込みを開始します。これは問題です。 –

+0

@ Nata2haMayan2ですが、これは以前よりももっときれいです。次に 'setTimeout'の中で' load'を動かしてください。更新されました、 – gdoron

+0

私は 'fadeIn'がその時点で' 'クリック' 'にバインドされるべきであると推測していますか? –

関連する問題