jQuery播放下一个视频上的滚动
jQuery play next video on scroll
我正在构建一个页面,其中动态加载的部分堆叠在一起,每个部分可以包含图像或视频。我想建立的功能,当用户滚动过去的视频,浏览器将播放其中一个是目前的看法。
一个页面可能看起来像:
-----------------
[ Header ]
-----------------
[ Image Section ] |
[ Image Section ] |
[ Image Section ] |
[ Video Section ] <---- Scroll height a (play first video but not second)
[ Image Section ] |
[ Image Section ] |
[ Video Section ] <---- Scroll height b (play second video but not first)
[ Image Section ] |
-----------------
[ Footer ]
-----------------
我的问题是,每个视频部分由相同的类'.section_video'
识别,我知道我可以将唯一标识符属性到每个部分,但如果有一种方法可以处理它而不这样做,那将是伟大的。
目前,为了检测我是否在视图中,我使用以下代码:
// Checks whether our top offset finds the video container
function isScrolledIntoView(elem){
var docViewTop = $(window).scrollTop();
var docViewBottom = docViewTop + $(window).height();
var elemTop = $(elem).offset().top;
var elemBottom = elemTop + $(elem).height();
return ((elemBottom >= docViewTop) && (elemTop <= docViewBottom)
&& (elemBottom <= docViewBottom) && (elemTop >= docViewTop) );
}
// Check whether the player div has been scrolled into view
function checkIfVideoInView(){
var player = $('.section_video .video_column video');
// If true was returned, play the video
if ( isScrolledIntoView(player) ) {
player.get(0).play();
}
}
window.onscroll = checkIfVideoInView;
我尝试使用$(this).(elem)
作为选择器,因为我认为它会抓取视图中的当前元素,但控制台提示该元素未定义。
有没有人可以指出我在正确的方向,或者我应该绑定唯一的标识符到每个视频页面加载?
我认为你应该使用$(elem).each()
并检查所有的视频元素。像这样:
$(window).scroll(function() {
$('.myVid').each(function() {
if(isInView(this)) {
this.play();
} else {
this.pause();
}
});
});
和功能:
function isInView(el) {
windowTop = $(window).scrollTop();
windowButtom = windowTop + $(window).height();
elTop = $(el).offset().top;
elButtom = elTop + $(el).height();
return (elTop >= windowTop && elButtom <= windowButtom);
}
演示http://jsfiddle.net/t52sz0rt/1/
相关文章:
- 滚动时播放youtube视频
- 滚动播放视频,但只能播放一次
- 在滚动上播放视频
- 在视频播放器中达到特定时间时滚动
- HTML文档类型导致视频自动播放而不滚动到
- HTML5视频播放一旦滚动进入视图
- 滚动到时自动播放Youtube视频
- 用于视频滚动的Javascript代码
- 当用户使用video.js滚动时播放视频
- jQuery播放下一个视频上的滚动
- 当滚动开始时暂停html5视频
- 如何在没有Jquery的情况下将HTML5视频快照附加到滚动DIV
- 播放HTML5视频时,滚动到,然后播放,直到完成,只播放一次
- 你能停止一个HTML5视频暂停/停止滚动
- 如何控制html视频的鼠标滚动
- 播放视频时滚动到,但播放视频一次
- 用脚本来回滚动视频
- 滚动播放一次视频有问题吗
- 如何在所有html5视频都加载了无限滚动后才运行砖石
- 如何使用jquery/javascript以这种视频风格向下滚动到内容框