Javascript 在Firefox上滚动播放视频,它不需要';行不通

Javascript 在Firefox上滚动播放视频,它不需要';行不通,javascript,firefox,video,Javascript,Firefox,Video,我只想在滚动时播放视频。它在Safari、Chrome、Opera中运行良好,但在Firefox中则不行。我已经将源代码更改为OGV的,并且比它工作得稍微好一点。它播放第一帧,然后计算机工作非常努力,网站上有很多bug,它不再播放任何东西。 可能是因为我有多个视频 是否有人看到了问题或知道更好的解决方案,这可能也适用于移动设备。我是一个比较新的编程网站,所以我选择了第一个有效的解决方案 我试图获得代码的所有必要部分:(从“//在滚动上播放视频”中,它应该变得更加重要) //加载视频 var是

我只想在滚动时播放视频。它在Safari、Chrome、Opera中运行良好,但在Firefox中则不行。我已经将源代码更改为OGV的,并且比它工作得稍微好一点。它播放第一帧,然后计算机工作非常努力,网站上有很多bug,它不再播放任何东西。 可能是因为我有多个视频

是否有人看到了问题或知道更好的解决方案,这可能也适用于移动设备。我是一个比较新的编程网站,所以我选择了第一个有效的解决方案

我试图获得代码的所有必要部分:(从“//在滚动上播放视频”中,它应该变得更加重要)


//加载视频
var是_firefox=navigator.userAgent.indexOf('firefox')>-1;
var video0=document.getElementById(“v0”);
var video1=document.getElementById(“v1”);
var video2=document.getElementById(“v2”);
var video3=document.getElementById(“v3”);
var video4=document.getElementById(“v4”);
如果(是firefox){
video0.src=“video0.ogv”;
video1.src=“video1.ogv”;
video2.src=“video2.ogv”;
video3.src=“video3.ogv”;
video4.src=“video4.ogv”;
}
否则{
video0.src=“video0.mp4”;
video1.src=“video1.mp4”;
video2.src=“video2.mp4”;
video3.src=“video3.mp4”;
video4.src=“video4.mp4”;
}
//滚动播放视频
var frameNumber=0;
var playbackConst=[850970170015001470];
数值=0;
window.onscroll=函数(){

如果((window.pageYOffset)将
视频.currentTime
绑定到
窗口.pageYOffset
很可能是罪魁祸首--滚动会导致y偏移量不断变化,我想在每个动画帧上快速转发/回放视频会很昂贵。此外,我不知道其他人的情况,但我滚动得不太顺畅。这将导致在当前状态下的抖动动画中。您是否考虑过一次播放一个视频(以正常速度)?您可以根据y偏移选择应该播放的视频。
<video id="v0" tabindex="0", autobuffer preload="auto"></video>
<video id="v1" tabindex="0", autobuffer preload="auto"></video>
<video id="v2" tabindex="0", autobuffer preload="auto"></video>
<video id="v3" tabindex="0", autobuffer preload="auto"></video>
<video id="v4" tabindex="0", autobuffer preload="auto"></video>

<script>
// Load Video
var is_firefox = navigator.userAgent.indexOf('Firefox') > -1;

var video0 = document.getElementById("v0");
var video1 = document.getElementById("v1");
var video2 = document.getElementById("v2");
var video3 = document.getElementById("v3");
var video4 = document.getElementById("v4");

if (is_firefox) {
  video0.src = "video0.ogv";
  video1.src = "video1.ogv";
  video2.src = "video2.ogv";
  video3.src = "video3.ogv";
  video4.src = "video4.ogv";
}

else {
  video0.src = "video0.mp4";
  video1.src = "video1.mp4";
  video2.src = "video2.mp4";
  video3.src = "video3.mp4";
  video4.src = "video4.mp4";
}


// Playing Video on Scroll

var frameNumber = 0;
var playbackConst = [850, 970, 1700, 1500, 1470];

value = 0;

window.onscroll = function() {
  if ((window.pageYOffset) <= 4000) {
    value = 0;
  } else if ((window.pageYOffset) <= 8000) {
    value = 1;
  } else if ((window.pageYOffset) <= 12000) {
    value = 2;
  } else if ((window.pageYOffset) <= 16000) {
    value = 3;
  } else {
    value = 4;
  }

  video = document.getElementById('v' + value);

  function scrollPlay(){
    var frameNumber  = (window.pageYOffset - (value * 4000))/playbackConst[value];
    video.currentTime  = frameNumber;
    window.requestAnimationFrame(scrollPlay);
  }
  window.requestAnimationFrame(scrollPlay);
};

</script>