javascript - 滚动播放一次视频有问题吗?

标签 javascript jquery video

如果滚动到 #user-experience 部分,我将使用以下代码播放视频:

JS:

var player = $('video');

function isInView(elem){
    return $(elem).offset().top - $(window).scrollTop() < $(elem).height();
}

$(window).scroll(function() {

    if (isInView($('#user-experience'))) {
        // console.log('play video');
        player.get(0).play();
    }

});

HTML:

<video>
    <source src="images/browser.webm" type="video/webm">
    <source src="images/browser.mp4" type="video/mp4">
    Your browser does not support HTML5 video.
</video>

代码的问题在于,每当用户滚动一点点时,它都会触发脚本,直到该部分在浏览器视口(viewport)中不可见。如果用户滚动到 #user-experience 部分,代码应该只触发一次。当滚动到另一个部分并返回时,视频不应第二次播放。

我该如何解决这个问题?

最佳答案

像这样?

var player = $('video');
var hasReachedUserExperience = false;

function isInView(elem){
    return $(elem).offset().top - $(window).scrollTop() < $(elem).height();
}

$(window).scroll(function() {

    if (isInView($('#user-experience')) && !hasReachedUserExperience) {
        hasReachedUserExperience = true;
        player.get(0).play();
    }

});

一个简单的 bool 标志似乎可以满足您的行为要求。

关于javascript - 滚动播放一次视频有问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38808041/

相关文章:

javascript - 如何结束我的 JQuery/Javascript 游戏?

javascript - 编写我自己的所见即所得媒体编辑器

javascript - 通过Selenium获取跨浏览器的scrollheight

javascript - HTML5 视频不显示在 Safari 上,但适用于所有其他浏览器

html - 跨浏览器兼容的内联视频解决方案

javascript - 为什么我不能突出显示我当前所在的链接?

javascript - jQuery - 实用程序与 QuerySelection - 方法

javascript - WordPress 定制器链接自 WP5.8 更新后停止工作

javascript - 未捕获的 TypeError : $(. ..).anotherfunc 不是函数

c++ - 是否可以使用opencv的imshow在没有工具栏的情况下显示图像?