淡入图像

Fade an image in

本文关键字:图像 淡入      更新时间:2023-09-26

我正在尝试在画布环境中淡化图像。从本质上讲,我想做的是,当从左到右移动图像时,我想将其从0%alpha渐变为100%alpha。当我在代码中注释globalAlpha和alpha信息时,它会像我希望的那样移动,我唯一的问题是让它褪色。我可以让globalAlpha函数工作,但它会影响画布区域中的所有艺术品。有没有一种方法我可以只影响一个元素?最终,我会想在动画中基于计时器的不同时间淡入多个元素,但如果我能首先实现这一点,我就可以从那里开始。

window.addEventListener('load', eventWindowLoaded, false);
function eventWindowLoaded() 
{
    canvasApp();
}
function canvasSupport () 
{
    return Modernizr.canvas;
}
function canvasApp()
    {
        if (!canvasSupport()) 
        {
            return;
        }

        var pointImage = new Image();
        pointImage.src = "images/barry.png";
        var barry = new Image();
        barry.src = "images/barry.png";
        /*var alpha = 0;
        context.globalAlpha = 1;*/
        function drawScreen() 
        {
            //context.globalAlpha = 1;
            context.fillStyle = '#EEEEEE';
            context.fillRect(0, 0, theCanvas.width, theCanvas.height);
            //context.globalAlpha = alpha;
            //Box
            context.strokeStyle = '#000000';
            context.strokeRect(1, 1, theCanvas.width-2, theCanvas.height-2);

            if (moves > 0 ) 
            {
                moves--;
                ball.x += xunits;
                ball.y += yunits;
            }

            context.drawImage(barry, ball.x, ball.y);
            /*context.restore();
            alpha += .1;
            if (alpha > 1)
            {
                alpha = 0;
            }*/

        }
        var speed = 1;
        var p1 = {x:20,y:250};
        var p2 = {x:40,y:250};
        var dx = p2.x - p1.x;
        var dy = p2.y - p1.y;
        var distance = Math.sqrt(dx*dx + dy*dy);
        var moves = distance/speed;
        var xunits = (p2.x - p1.x)/moves;
        var yunits = (p2.y - p1.y)/moves;
        var ball = {x:p1.x, y:p1.y};
        var points = new Array();
        theCanvas = document.getElementById("canvas");
        context = theCanvas.getContext("2d");
        ctx = theCanvas.getContext("2d");
        setInterval(drawScreen, 10);
    }

欢迎提出任何建议!

我认为另一个问题会给你一个方法。

它展示了如何在画布上下文中加载元素,然后如何将其淡入。

绘制画布元素后,如何更改元素的不透明度(alpha,透明度)?