Webpack中的Scrollmagic视频动画(BigCommerce)

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

我正在尝试通过scrollmagic实现视频动画。

期望的结果是,视频基于用户滚动位置播放。

export default function magic() {
//MAIN
var controller = new ScrollMagic.Controller();

// SceneOne animation
    const $video = $('#soVideo');
    let sceneOne = new ScrollMagic.Scene({
        duration: 9000,
        triggerElement: '#trigger1',
        triggerHook: 0
    })
        .setPin('#trigger1')
        .addIndicators()
        .addTo(controller);



        // SceneOne animation
        let accelamount = 0.1;
        let scrollpos = 0;
        let delay = 0;

        sceneOne.on('update', e => {
            scrollpos = e.scrollPos / 1000;

        });

        setInterval(() => {
            delay += (scrollpos - delay) * accelamount;

            $video.currentTime = delay;
            console.log(delay);
        }, 33.36); 
}

问题是,我无法正常工作,视频在滚动时保持静态。

我正在尝试对产品页面执行此操作,不确定我在做什么错。

感谢任何提示!

javascript webpack bigcommerce scrollmagic
1个回答
0
投票

确定。现在可以使用:

export default function magic() {

const intro = document.querySelector(".video-section");
const video = intro.querySelector('.video_zero');
const text = intro.querySelector('.intro-text');

var controller = new ScrollMagic.Controller();

// SceneOne animation
let sceneOne = new ScrollMagic.Scene({
    duration: 9500,
    triggerElement: intro,
    triggerHook: 0
})
    .setPin(intro)
    .addIndicators()
    .addTo(controller);



// SceneOne animation
let accelamount = 0.1;
let scrollpos = 0;
let delay = 0;

sceneOne.on('update', e => {
    scrollpos = e.scrollPos / 1000;

});

setInterval(() => {
    delay += (scrollpos - delay) * accelamount;

    video.currentTime = delay;

}, 33.3);

}

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