2017-02-10 17 views
0

私はこれに従っています: Fire an event on play of youtube iframe embed 私の場合は、再生/一時停止時にdivを表示/非表示にします。次のように動作しますが、最初の再生クリックでは両方のイベントが最初のイベントでのみ発生します。そのような: ファーストプレイをクリック - > slideUp - > slideDown - > slideUp 私はそれを必要として、それが動作その後Play-> slideUpでStop-> slideDown再生時にイベントを起こしてiframe埋め込みを停止する

は誰もが見ることができます私は間違っていますか?

<script src="https://www.youtube.com/iframe_api"></script> 
<div class="header_div">HEADER DIV</div> 

<div id="video"></div> 

var player, playing = false; 
function onYouTubeIframeAPIReady() { 
    player = new YT.Player('video', { 
     height: '450', 
     width: '800', 
     videoId: 'jNQXAC9IVRw', 
     events: { 
      'onStateChange': onPlayerStateChange 
      } 
    }); 
} 

function onPlayerStateChange(event) { 
    if(!playing){ 
     $(".header_div").slideUp('slow'); 
     playing = true; 
    } else { 
     $(".header_div").slideDown('slow'); 
     playing = false; 
    } 
} 
+1

は、プレイヤーが複数の状態は、HTTPを参照している終了したときに下にスライドしている:// stackoverflow.com/a/8204143/4613398詳細については、2つの州だけが必要です – madalinivascu

+0

このリンクをありがとうございます。 – John

+0

下記の私の答えを見てください – madalinivascu

答えて

0

プレーヤーは、複数の状態が支払うイベントの開始時にスライドアップをトリガし、プレイヤーが一時停止または

function onPlayerStateChange(event) { 
    if(event.data == YT.PlayerState.PLAYING && !playing){ 
     $(".header_div").slideUp('slow'); 
     playing = true; 
    } else if(event.data == YT.PlayerState.PAUSED || event.data == YT.PlayerState.ENDED) { 
     $(".header_div").slideDown('slow'); 
     playing = false; 
    } 
関連する問題