javascript - 当窗口聚焦时自动滚动播放视频

标签 javascript html web

视频博客,其中视频为 800x600 像素(占据浏览器屏幕的大部分)。 我正在使用带有属性“loop”和“autoplay”的 html 标签

到目前为止,浏览器播放了超过 10 个视频,所有这些视频都卡住了!

我需要一段代码来在用户滚动到焦点视频时一次播放一个视频,并在离开滚动焦点时立即暂停视频。

最佳答案

如果视频均匀分布在 600 像素高,并且假设视频的边距至少为 50 像素,则意味着每个视频的功能高度为 700 像素。因此您想要播放最靠近屏幕顶部的视频。

const qVideos = document.querySelectorAll('video');

^ 这假设您正在使用视频元素来播放视频并正在收集它们。

const calcVideoNumber=scrollPositionY => Math.floor(scrollPositionY/700);

^此函数获取您的滚动位置并返回页面下方 700 像素(这应该是您的视频部分高度)高部分的数量。

const stopPlaying = videos => Array.from(videos).forEach( video => video.pause() );

^ 停止播放所有通过的视频

window.onscroll = 事件 => { 停止播放(qVideos); qVideos[calcVideoNumber(event.scrollY)].play() }

关于javascript - 当窗口聚焦时自动滚动播放视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35186644/

相关文章:

javascript - 显示/隐藏 JavaScript 在 IE 中不起作用,仅在 Firefox 中起作用

html - 当切换相邻列中的元素时,col 中的元素会稍微移动

javascript - 从网站获取 href 属性的完整列表

javascript - 获取 API 或 XMLHTTPRequest : How to get exact error reason for a network error?

javascript - Highcharts固体规范动态更新

Angular 组件内的 HTML 正文

javascript - Bootstrap 4 下拉菜单在导航栏下方推送弹出窗口

php - 网页刷新,mysql更新

Java selenium 如何从谷歌搜索结果中打开链接?

rest - 休息应用程序中的用户上下文