【发布时间】:2018-12-12 22:41:30
【问题描述】:
在我的网站https://cravydev.netlify.com 上,当不同的标题出现在视口中时,我正在尝试动态更改视频。
我正在使用具有 HTML 5 自动播放和循环属性的 div,但还不能更改视频源并在特定标题出现在屏幕上时再次加载。以下是详细信息。
HTML
<div class="iphone-sticky"></div>
<div class="iphone-video">
<video autoplay loop muted poster="assets/img/poster.png" id="iphonevideo">
<source id="video1" src="assets/img/iphone-video.mp4" type="video/mp4">
<source id="video2" src="assets/img/iphone-video-1.mp4" type="video/mp4">
</video>
JS
//Detect is element is in viewport
$(window).on('resize scroll', function() {
var player = document.getElementById('iphonevideo2');
if ($('#headline2').isInViewport()) {
var source = document.getElementById('video1');
$(source).attr("src", "assets/img/iphone-video-1.mp4");
player.pause();
player.load();
} else if ($('#headline3').isInViewport()) {
var source = document.getElementById('video1');
$(source).attr("src", "assets/img/iphone-video.mp4");
player.pause();
player.load();
}
});
编辑
感谢 Kley 的评论,我已经能够解决它。现在的问题是 js 逻辑不会经常检查标题的视口可见性,只检查一次。另外,视频一边滚动一边播放,海报图片出现,让整个体验有点奇怪。
有什么建议可以解决吗?
谢谢!
【问题讨论】:
-
您的代码中没有
#iphoneStick元素。您应该在#iphonevideo上设置src属性。 -
抱歉,打错了。已编辑但仍无法正常工作。
标签: javascript jquery html html5-video