Reputation: 1120
I want to show() a div when my html5 video player reaches a certain time. I was able to get a div to show at the end of the video, but I'm not sure how to show the div when the video is at a specific time, like 0:06.
<div id = "showdiv" style="display:none" align="center">
this is the message that will pop up.
</div>
<video id='myVideo' align="center" margin-top="100px" class='video-js
vjs-default-skin' preload='auto' data-setup='{}' width='800' height='446'>
<source src='myVideo.mp4' type='video/mp4'l></source>
<script>
document.getElementById('myVideo').addEventListener('ended',myHandler,false);
function myHandler(e) {
if(!e) { e = window.event; }
$("#showdiv").toggle("slow");
}
</script>
Upvotes: 4
Views: 6243
Reputation: 45121
Take a look at timeupdate
event.
https://developer.mozilla.org/en-US/docs/Mozilla_event_reference/timeupdate
var runAtTime = function(handler, time) {
var wrapped = function() {
if(this.currentTime >= time) {
$(this).off('timeupdate', wrapped);
return handler.apply(this, arguments);
}
}
return wrapped;
};
$('#myVideo').on('timeupdate', runAtTime(myHandler, 3));
http://jsfiddle.net/tarabyte/XTEWW/1/
Upvotes: 6