javascript - Mac 中的 Firefox 正在改变滚动事件侦听器怎么样?
问题描述
完整的例子在这里:https ://codepen.io/builtbyvern/pen/MWmLgqd?editors=0100
我正在尝试构建一个动画到与滚动到的百分比相匹配的部分的视频。它适用于除 MacOS 上的 Firefox 之外的所有浏览器。
Firefox 似乎正在消除与视频集成的滚动事件。我可以看到它通常在滚动完成或移动非常缓慢后更新。对于那些不想打开 codepen 的人:
const video = document.getElementById('video');
const main = document.querySelector('main')
const viewportHeight = window.outerHeight
const mainDeets = main.getBoundingClientRect()
const scrollyHeight = mainDeets.height
const initialTopOffset = mainDeets.top
const adjustedHeight = scrollyHeight - initialTopOffset
let percentScrolled = 0
// required to get video length
video.onloadedmetadata = () => {
const videoDuration = video.duration
let current = video.currentTime
window.addEventListener('scroll', () => {
const gbcr = main.getBoundingClientRect()
percentScrolled = gbcr.top / -adjustedHeight
if (percentScrolled >= 0) {
video.currentTime = videoDuration * percentScrolled
}
})
}
这对我来说是一个很大的麻烦。
解决方案
推荐阅读
- java - List 中具有频率计数的唯一值
- >
- javascript - 来自 REST api 的 HTML 文件浏览器
- javascript - 我的按钮样式不想要,我似乎找不到如何更改它
- cakephp - CakePHP 3.7.1 DispatchShell 不执行迁移 Shell
- r - R - 如何用不同比例的两个 y 轴绘制 ggplot2 * 与时间变量
- django - 在 Django 中下载文件时如何在网页中显示某些内容
- android - Android ViewPager 不显示任何视图
- hadoop - 我知道 MapReduce 使用键值对。在这种情况下,关键和价值到底是什么?
- javascript - 如何找到对象的最大值?
- java - 如何解决 pom.xml - android eclipse 应用程序中的错误?