Javascript 如何使用jQuery为HTML5视频播放器制作动画以响应触发事件?
所以,我在我的网站上使用Jilion的Sublime。我想知道,当某些事件通过播放器触发时,是否有一种方法可以使用jQuery为我的视频播放器设置动画 例如,当按下播放按钮时,视频播放器将移到屏幕中央 我在js中对玩家进行了挖掘,它似乎在使用“play”、“pause”、“finish”和“end”来触发玩家所做的事情。我想知道的是,我是否可以使用与某些jQuery相同的技术,这些jQuery会说,在点击“播放”时执行此操作: 我知道这是一种黑客工作,谁能告诉我怎么做这样的事情 以下是播放功能的示例:Javascript 如何使用jQuery为HTML5视频播放器制作动画以响应触发事件?,javascript,jquery,html5-video,Javascript,Jquery,Html5 Video,所以,我在我的网站上使用Jilion的Sublime。我想知道,当某些事件通过播放器触发时,是否有一种方法可以使用jQuery为我的视频播放器设置动画 例如,当按下播放按钮时,视频播放器将移到屏幕中央 我在js中对玩家进行了挖掘,它似乎在使用“play”、“pause”、“finish”和“end”来触发玩家所做的事情。我想知道的是,我是否可以使用与某些jQuery相同的技术,这些jQuery会说,在点击“播放”时执行此操作: 我知道这是一种黑客工作,谁能告诉我怎么做这样的事情 以下是播放功能的
o.play=function(a){if(a||this.ga==Dc)this.Z=0,this.coords=this.ec;else
if(this.Ga())return l;Ic(this);this.startTime=a=oa();-1==this.ga&&(this.startTime-
=this.duration*this.Z);this.ue=this.startTime+this.duration;this.rd=this.startTime;
this.Z||this.vd();this.la("play");-1==this.ga&&this.la("resume");this.ga=1;
var b=ia(this);b in Gc||(Gc[b]=this);Jc();Lc(this,a);return j};
提前谢谢
更新:好的,这就是我目前所得到的,似乎有效
var v = document.getElementsByTagName("video")[0];
v.addEventListener("playing", function() {
$('#video').animate({left: '-90'}, "fast");
},function(){
$('#video').animate({left: '-346'}, "fast");
});
HTML5视频具有它所能发出的信息,如播放、暂停、结束等。您可以使用jQuery绑定到这些事件,并从中执行任何您想要的操作。HTML5视频具有它所发出的功能,例如播放、暂停、完成和其他一些功能。您可以使用jQuery绑定到这些事件,并从中执行任何您想执行的操作。您可以立即使用自定义事件触发该行为 例如:
$('body').bind('videoPlay', function() {
// fancy animation stuff here..
alert('video started playing');
});
在o.play函数中,您可以添加如下内容:
$('body').trigger('videoPlay');
var oldplay = o.play;
o.play = function() {
$('body').trigger('videoPlay');
return oldplay.call();
}
当然,也就是说,如果您可以访问javascript并可以在正确的位置修改它
===
另一个选项是使用您自己的方法覆盖o.play,然后调用原始o.play。。但是,我不知道这是否有效,因为您的示例o.play()方法似乎同时处理pause()和play()?大概是这样的:
$('body').trigger('videoPlay');
var oldplay = o.play;
o.play = function() {
$('body').trigger('videoPlay');
return oldplay.call();
}
在任何情况下,您都可以绑定到自定义事件并对其作出反应,只要您知道需要在何处“触发”事件。即时您可以使用自定义事件触发行为 例如:
$('body').bind('videoPlay', function() {
// fancy animation stuff here..
alert('video started playing');
});
在o.play函数中,您可以添加如下内容:
$('body').trigger('videoPlay');
var oldplay = o.play;
o.play = function() {
$('body').trigger('videoPlay');
return oldplay.call();
}
当然,也就是说,如果您可以访问javascript并可以在正确的位置修改它
===
另一个选项是使用您自己的方法覆盖o.play,然后调用原始o.play。。但是,我不知道这是否有效,因为您的示例o.play()方法似乎同时处理pause()和play()?大概是这样的:
$('body').trigger('videoPlay');
var oldplay = o.play;
o.play = function() {
$('body').trigger('videoPlay');
return oldplay.call();
}
在任何情况下,只要您知道需要在哪里“触发”事件,就可以绑定到自定义事件并对其作出反应。尽可能利用本机事件+1该HTML5播放器是否使用相同的媒体事件?如果是这样,我将如何将它们绑定到jQuery的.on()?对不起,我还在努力学习这一切。好的,我已经设法让它工作了。我已经更新了我原来的帖子,我做得对吗。当再次完成动画制作时,我如何告诉它。我假设我使用的是“结束”媒体事件?因此,当我上面的代码工作时,它感觉臃肿。幻灯片动画也相当紧张。有什么方法可以改进这一点吗?尽可能利用本机事件+1该HTML5播放器是否使用相同的媒体事件?如果是这样,我将如何将它们绑定到jQuery的.on()?对不起,我还在努力学习这一切。好的,我已经设法让它工作了。我已经更新了我原来的帖子,我做得对吗。当再次完成动画制作时,我如何告诉它。我假设我使用的是“结束”媒体事件?因此,当我上面的代码工作时,它感觉臃肿。幻灯片动画也相当紧张。有什么办法可以改进吗?