滚动开始时暂停html5视频

时间:2015-09-01 09:19:46

标签: javascript html5-video scrolltop

我最近在自己的公司网站上添加了一个html5视频。 imbeeld.nl

现在我希望视频在开始滚动页面时暂停。

我知道这可以通过添加一些JS来完成,但我对此很新。

document.getElementById('myvideotag').pause();

我已经制作了一些脚本,用于在滚动开始时替换视频的CSS类:

$(document).on("scroll",function(){
  if($(document).scrollLeft()>1)    
    {$("#frontvideo").removeClass("front_cover").addClass("front_cover_hide");}
  else{$("#frontvideo").removeClass("front_cover_hide").addClass("front_cover");}
}); 

如何组合两个JS部分并在滚动开始时暂停视频?

谢谢!

5 个答案:

答案 0 :(得分:0)

问题只是将它结合起来? 如果您不想在任何滚动条上暂停视频:

$(document).on("scroll",function(){
    document.getElementById('myvideotag').pause();
    if($(document).scrollLeft()>1{
        $("#frontvideo").removeClass("front_cover").addClass("front_cover_hide");
    }
    else{
        $("#frontvideo").removeClass("front_cover_hide").addClass("front_cover");
    }
}); 

答案 1 :(得分:0)

您可以按变量

定义

喜欢

var video = document.getElementById("myvideotag");

然后您可以像滚动开始时一样暂停

video.pause();

答案 2 :(得分:0)

如果您要实现的目的是隐藏并在用户向左滚动时暂停视频,那么您可以在此处找到维基媒体视频示例的摘录。

顺便说一句,您可以使用$('#myvideotag')[0]从jQuery中提取DOM对象。

$(document).ready(function(){
  $('#myvideotag')[0].play();
});

$(document).on("scroll",function(){
  if($(document).scrollLeft()>1)    
   {      
     $("#frontvideo").removeClass("front_cover").addClass("front_cover_hide");
     $('#myvideotag')[0].pause();
   }
   else
   {
    $("#frontvideo").removeClass("front_cover_hide").addClass("front_cover");
     $('#myvideotag')[0].play();
   }
});
html, body
{
  width: 110%;
  height: 100%;
}

#frontvideo
{
  position: absolute;
  top: 0;
  height: 0;
  width: 110%;
  height: 100%;
  background: white;
  text-align: center;
  padding-top: 100px;
}

.front_cover
{
  opacity: 0;
}

.front_cover_hide
{
  opacity: 0.9;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<video id="myvideotag" width="400" controls>
  <source src="https://upload.wikimedia.org/wikipedia/commons/transcoded/4/4d/Wikipedia_Edit_2014.webm/Wikipedia_Edit_2014.webm.480p.webm" type="video/mp4">
  Your browser does not support HTML5 video.
</video>


<div id="frontvideo" class="front_cover">I'M THE COVER</div>

希望它有所帮助!

答案 3 :(得分:0)

试试这段代码

 $(document).ready(function(){
       $(document).on("scroll",function(){
            var sc = $("body").prop('scrollLeft')
            var scv= $("#myvideotag").offset().Left;
            if(scv < sc)    
            {
                $("#frontvideo").removeClass("front_cover").addClass("front_cover_hide");
            }
            else{
                 $("#frontvideo").removeClass("front_cover_hide").addClass("front_cover");
            }

        });
    });

答案 4 :(得分:0)

有效! 这样做的诀窍: 抱歉布局不好

$(document).ready(function(){
  $('#frontvideo')[0].play();
});

$(document).on("scroll",function(){
  if($(document).scrollLeft()>1){      
     $('#frontvideo')[0].pause();
   }
   else
   {
     $('#frontvideo')[0].play();
   }
});