Javascript 滚动自动播放视频,但仅播放一次

Javascript 滚动自动播放视频,但仅播放一次,javascript,jquery,video,autoscroll,Javascript,Jquery,Video,Autoscroll,我对jquery非常陌生,所以我从另一个stackoverflow问题中获得了这段代码,但我不知道如何调整它 我有一个视频,当它滚动到窗口时自动播放。但是,如果视频暂停,用户甚至滚动一个像素,视频将再次启动。如果用户滚动时视频仍在窗口中,我希望视频保持暂停 理想情况下,如果视频完全看不见,然后又重新播放,自动播放将再次运行。如果该自动播放功能只运行一次,并且用户可以选择再次播放视频(如果他们愿意),则该功能也会起作用 $(document).ready(function() { // G

我对jquery非常陌生,所以我从另一个stackoverflow问题中获得了这段代码,但我不知道如何调整它

我有一个视频,当它滚动到窗口时自动播放。但是,如果视频暂停,用户甚至滚动一个像素,视频将再次启动。如果用户滚动时视频仍在窗口中,我希望视频保持暂停

理想情况下,如果视频完全看不见,然后又重新播放,自动播放将再次运行。如果该自动播放功能只运行一次,并且用户可以选择再次播放视频(如果他们愿意),则该功能也会起作用

$(document).ready(function() {
    // Get media - with autoplay disabled (audio or video)
    var media = $('.autoplay').not("[autoplay='autoplay']");
    var tolerancePixel = 40;

    function checkMedia() {
        // Get current browser top and bottom
        var scrollTop = $(window).scrollTop() + tolerancePixel;
        var scrollBottom = $(window).scrollTop() + $(window).height() - tolerancePixel;

        media.each(function(index, el) {
            var yTopMedia = $(this).offset().top;
            var yBottomMedia = $(this).height() + yTopMedia;

            if (scrollTop < yBottomMedia && scrollBottom > yTopMedia)
                $(this).get(0).play();
            else
                $(this).get(0).pause();
        });
    }

    $(document).on('scroll', checkMedia);
});
$(文档).ready(函数(){
//获取媒体-禁用自动播放(音频或视频)
var media=$('.autoplay')。不是(“[autoplay='autoplay']”);
var公差像素=40;
函数checkMedia(){
//从上到下获取当前浏览器
var scrollTop=$(窗口).scrollTop()+公差像素;
var scrollBottom=$(窗口).scrollTop()+$(窗口).height()-公差像素;
媒体。每个(功能(索引,el){
var yTopMedia=$(this).offset().top;
var yBottomMedia=$(this).height()+yTopMedia;
如果(scrollTopyTopMedia)
$(此).get(0.play();
其他的
$(this.get(0.pause());
});
}
$(文档)。在('scroll',checkMedia)上;
});

只需将元素标记为已播放

 if( scrollTop < yBottomMedia && scrollBottom > yTopMedia){
              if (!$(el).attr('data-played')){
                $(el).attr('data-played',1);
                $(this).get(0).play();
               }
            } else {
                $(this).get(0).pause();
            }
if(滚动顶部yTopMedia){
if(!$(el).attr('data-played')){
$(el).attr('数据播放',1);
$(此).get(0.play();
}
}否则{
$(this.get(0.pause());
}