Javascript 使用jQuery和in-view.js自动播放/暂停HTML5视频
我使用jqueryinview插件top在查看时自动播放视频。我已经尝试了stackoverflow的许多解决方案,但它似乎不起作用(,)Javascript 使用jQuery和in-view.js自动播放/暂停HTML5视频,javascript,jquery,html5-video,inview,Javascript,Jquery,Html5 Video,Inview,我使用jqueryinview插件top在查看时自动播放视频。我已经尝试了stackoverflow的许多解决方案,但它似乎不起作用(,) $('.video autoplay')。打开('inview',函数(事件,isInView){ 如果(isInView){ $('video')。触发器('play'); }否则{ $('video')。触发器('pause'); } }); 您的浏览器不支持视频标记。 您的浏览器不支持视频标记。 您的浏览器不支持视频标记。 您的浏览器不支持视频标记。
$('.video autoplay')。打开('inview',函数(事件,isInView){
如果(isInView){
$('video')。触发器('play');
}否则{
$('video')。触发器('pause');
}
});
您的浏览器不支持视频标记。
您的浏览器不支持视频标记。
您的浏览器不支持视频标记。
您的浏览器不支持视频标记。
这里有两个问题。首先,由于jQuery逻辑的位置,需要将其包装在document.ready处理程序中。目前,您正在加载DOM之前执行JS,并且不存在任何元素
其次,当事件触发时,选择所有video
元素。从事件处理程序的上下文来看,我假设您希望启动现在可见/不可见的视频,因此使用$(this)
似乎更适用。试试这个:
$(function() {
$('.video-autoplay').on('inview', function(event, isInView) {
$(this).trigger(isInView ? 'play' : 'pause');
});
});
这里有两个问题。首先,由于jQuery逻辑的位置,需要将其包装在document.ready处理程序中。目前,您正在加载DOM之前执行JS,并且不存在任何元素 其次,当事件触发时,选择所有
video
元素。从事件处理程序的上下文来看,我假设您希望启动现在可见/不可见的视频,因此使用$(this)
似乎更适用。试试这个:
$(function() {
$('.video-autoplay').on('inview', function(event, isInView) {
$(this).trigger(isInView ? 'play' : 'pause');
});
});
通过验证器运行HTML也是值得的。第1行和第9行的结束脚本标记需要注意。这可能是造成问题的原因…通过验证器运行HTML也是值得的。第1行和第9行的结束脚本标记需要注意。这可能是造成问题的原因…谢谢@Rory。我用我的脚本替换了你的脚本,但它不起作用:(哎呀!它确实起作用了。只有视频在未完全显示的情况下仍能播放。谢谢@Rory。我用我的脚本替换了你的脚本,但它不起作用:(哎呀!它确实起作用了。只有视频在未完全显示的情况下仍能播放。)。