Chrome 上的 ScrollMagic 故障

问题描述 投票:0回答:1

社区您好,

我在我的网站上使用 Scroll Magic 实现了一种效果,可以在用户向下滚动页面时播放视频。此效果在其他浏览器中完美运行,但我在 Google Chrome 中遇到了严重的性能问题。

问题描述:

视频在 Chrome 上明显卡顿,而在其他浏览器中则播放流畅。 我已经检查过,在我的网站上没有遇到任何其他值得注意的性能问题。 这个问题似乎是 Chrome 特有的,因为我在其他浏览器中没有观察到这种卡顿现象。

这是我的JS代码:

const intro = document.querySelector('.intro');
const video = intro.querySelector('video');
const text = intro.querySelector('h1');
//END SECTION
const section = document.querySelector('section');
const end = section.querySelector('h1');

//SCROLL MAGIC

const controller = new ScrollMagic.Controller();

//SCENES
let scene = new ScrollMagic.Scene({

    duration: 9000,
    triggerElement: intro,
    triggerHook: 0
})
.addIndicators()
.setPin(intro)
.addTo(controller);


//TEXT ANIMATION
const textAnim = TweenMax.fromTo(text, 3, {opacity: 1}, {opacity: 0});

let scene2 = new ScrollMagic.Scene({
    duration: 3000,
    triggerElement: intro,
    triggerHook: 0
})

.setTween(textAnim)
.addTo(controller);

//VIDEO ANIMATION

let accelAmount = 0.1;
let scrollPos = 0;
let delay = 0;

scene.on("update", e => {
    scrollPos = e.scrollPos / 1000;
});

setInterval(() =>{
    delay += (scrollPos - delay) * accelAmount;

    video.currentTime = delay;
}, 10);

我的 HTML 代码:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>AxB|Home</title>
    <link rel="stylesheet" href="./style.css">
</head>

<body>

    <div class="intro">
        <h1>Make it floating</h1>
        <video src="Images/Floating2.mp4"></video>
    </div>

    <section>
        <h1>REVOLUTIONARRY</h1>
    </section>


    <script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/latest/TweenMax.min.js"
        integrity="sha512-8Wy4KH0O+AuzjMm1w5QfZ5j5/y8Q/kcUktK9mPUVaUoBvh3QPUZB822W/vy7ULqri3yR8daH3F58+Y8Z08qzeg=="
        crossorigin="anonymous" referrerpolicy="no-referrer"></script>
    <script
        src="https://cdnjs.cloudflare.com/ajax/libs/ScrollMagic/2.0.8/ScrollMagic.min.js"
        integrity="sha512-8E3KZoPoZCD+1dgfqhPbejQBnQfBXe8FuwL4z/c8sTrgeDMFEnoyTlH3obB4/fV+6Sg0a0XF+L/6xS4Xx1fUEg=="
        crossorigin="anonymous" referrerpolicy="no-referrer"></script>
    <script
        src="https://cdnjs.cloudflare.com/ajax/libs/ScrollMagic/2.0.8/ScrollMagic.js"
        integrity="sha512-UgS0SVyy/0fZ0i48Rr7gKpnP+Jio3oC7M4XaKP3BJUB/guN6Zr4BjU0Hsle0ey2HJvPLHE5YQCXTDrx27Lhe7A=="
        crossorigin="anonymous" referrerpolicy="no-referrer"></script>
    <script
        src="https://cdnjs.cloudflare.com/ajax/libs/ScrollMagic/2.0.8/plugins/animation.gsap.js"
        integrity="sha512-judXDFLnOTJsUwd55lhbrX3uSoSQSOZR6vNrsll+4ViUFv+XOIr/xaIK96soMj6s5jVszd7I97a0H+WhgFwTEg=="
        crossorigin="anonymous" referrerpolicy="no-referrer"></script>
    <script type="text/javascript"
        src="https://cdnjs.cloudflare.com/ajax/libs/ScrollMagic/2.0.8/plugins/debug.addIndicators.js"
        integrity="sha512-mq6TSOBEH8eoYFBvyDQOQf63xgTeAk7ps+MHGLWZ6Byz0BqQzrP+3GIgYL+KvLaWgpL8XgDVbIRYQeLa3Vqu6A=="
        crossorigin="anonymous" referrerpolicy="no-referrer"></script>

   
    <script src="script.js"></script>
</body>

</html>

还有我的 CSS 代码:

*{
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body{
    font-family: sans-serif;
}

.intro{
    height: 100vh;
}

.intro video{
    height: 100%;
    width: 100%;
    object-fit: cover;

}

.intro h1{
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%,-50%);
    font-size: 80px;
    color: white;
}

section{
    height: 100vh;
    color: black;
}

section h1{
    padding-top: 300px;
    text-align: center;
    font-size: 80px;
}

到目前为止我尝试过的:

我缩小了视频的尺寸以提高性能,但问题仍然存在。 我一直在寻找特定于 Chrome 的视频性能问题解决方案,但到目前为止没有成功。

javascript jquery google-chrome scroll scrollmagic
1个回答
0
投票

HTML5 视频无法自动播放,除非像这样静音...

<video src="Images/Floating2.mp4" muted></video>

但是,您使用的一些第三方库显然克服了这个问题并在后台自动播放......大概有声音?

那么,我们是否因为未能将播放器静音而与浏览器发生冲突?

添加静音参数来尝试一下,看看效果如何。

© www.soinside.com 2019 - 2024. All rights reserved.