Search code examples
javascriptjqueryhtmlcssvimeo

how to show a div when vimeo video reaches certain second?


I am using Froogaloop.js to pause and play the vimeo video externally . Now I want to show a div after 20 second of video has been played. How to achieve this, I searched a lot and was not able to crack the code for it. This is what I have tried so far..

var iframe = document.getElementById('video');

// $f == Froogaloop
var player = $f(iframe);

// bind events
var playButton = document.getElementById("play-button");
playButton.addEventListener("click", function() {
  player.api("play");
});

var pauseButton = document.getElementById("pause-button");
pauseButton.addEventListener("click", function() {
  player.api("pause");
});
.button {
  width: 48px;
  height: 48px;
  cursor: pointer;
}

.defs {
  position: absolute;
  top: -9999px;
  left: -9999px;
}

iframe {
  float: left;
  width: 350px;
  height: 200px;
}

.buttons {
  padding: 1rem;
  background: #f06d06;
  float: left;
}

body {
  padding: 1rem;
}

.show--div-20sec {
  width: 100%;
  background: red;
  height: 80px;
  float: left;
  display: none;
}
<script src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/3/froogaloop.js"></script>
<iframe src="https://player.vimeo.com/video/80312270?api=1" width="500" height="281" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen id="video"></iframe>
<!-----------Show this div when video has been played for 20 seconds----->
<div class="show--div-20sec">
  Show me after 20 second of video play
</div>


<div class="buttons">


  <button id="play-button">Play</button>
  <button id="pause-button">Pause</button>

</div>

Help much appriciated.. Thanks in advance :)


Solution

  • Try this code

    $(function() {
    var iframe = $('#player1')[0];
    var player = $f(iframe);
    var status = $('.status');
    var playButton = document.getElementById("play-button");
    playButton.addEventListener("click", function() {
      player.api("play");
    });
    
    var pauseButton = document.getElementById("pause-button");
    pauseButton.addEventListener("click", function() {
      player.api("pause");
    });
    setTimeout(function () {
    player.addEvent('ready', function() {
    player.addEvent('playProgress', onPlayProgress);
    });
    });
    function onPlayProgress(data, id) {
    var Time = data.seconds; 
        if (Time >= '20') {
        $('.show--div-20sec').show();
        }
    }
    });
    

    DEMO