带有.png图像的滚动序列很奇怪

Scroll Sequence with .png image work weird

提问人:Adit Lin 提问时间:9/24/2022 最后编辑:Adit Lin 更新时间:9/24/2022 访问量:136

问:

所以我正在做我的项目,我想做一些类似 Apple Scroll Sequence 的部分。

但是当我将图像序列转换为.PNG时,这很糟糕:(

所以,这是我滚动该部分时的图像。就像影子/emm我不知道是什么哈哈。

Look like this

这是我的代码:

 <div class="intermezo-sequence">
                <div class="sticky-element">
                    <div class="sequence-element">
                        <canvas id="intermezo_canvas"></canvas>
                    </div>
                </div>
            </div>          

const canvas = document.querySelector('#hero_canvas')
const ctx = canvas.getContext('2d')
const heroSequence = document.querySelector('.hero-sequence')
const images = []

var sequence1 = <?= json_encode($sequence1) ?>;
sequence1.sort();
const frameCount = sequence1.length; // biar dinamis total nya
const prepareImages = () => {
    for (var i = 0; i < frameCount; i++) {
        // console.log(sequence1[i]);
        const image = new Image()
        // image.src = `./assets/images/studycase/sequence/${i}.jpg`
        canvas.width = 1928;
        canvas.height = 1000;
        image.src = sequence1[i];
        images.push(image)
        if (i === 0) {
            images[i].onload = () => drawImage1(0)
        }
    }
}

const drawImage1 = frameIndex => {
    ctx.drawImage(images[frameIndex], 0, 0)
}

prepareImages()

const heroSection = document.getElementById("heroSection");
window.addEventListener('scroll', () => {
    const scrollTop = document.documentElement.scrollTop - heroSection.offsetTop
    const maxScrollTop = heroSequence.scrollHeight - window.innerHeight
    const scrollFraction = scrollTop / maxScrollTop
    const frameIndex = Math.max(0, Math.min(frameCount - 1, Math.ceil(scrollFraction * frameCount)))

    images[frameIndex].onload = () => drawImage1(frameIndex)
    requestAnimationFrame(() => drawImage1(frameIndex))
})

我应该在逻辑中添加什么吗?谢谢!

JavaScript Web Canvas 视频 序列

评论

1赞 user3297291 9/26/2022
请尝试从屏幕上清除之前绘制的图像。ctx.clearRect(0, 0, canvas.width, canvas.height)ctx.drawImage
0赞 Adit Lin 9/28/2022
@user3297291 如果你介意的话,还有一件事,每当我在手机上滚动它时。为什么有时图像序列会消失......有时效果很好。如果你不明白我的意思,我会提供视频

答: 暂无答案