2017-02-10 4 views
0

Я следую за этим: Fire an event on play of youtube iframe embed Но в моем случае я скрываю/показываю div на play/pause. Следующее работает, но оно запускает оба события при первом щелчке игры, только на первом. Его как: First Play Нажмите -> slideUp -> slideDown -> slideUp После того, что он работает, как мне нужно On играть-> slideUp и О стоп-> slideDownПожар события в игре и остановки youtube iframe embed

Может кто-нибудь увидеть, я не прав?

<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; 
    } 
Смежные вопросы