Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 淡入_Javascript_Canvas - Fatal编程技术网

Javascript 淡入

Javascript 淡入,javascript,canvas,Javascript,Canvas,我试图在画布环境中淡出图像。基本上,我想做的是,当从左向右移动图像时,我想将其从0%alpha淡入100%alpha。当我在代码中注释globalAlpha和alpha信息时,它会像我希望的那样移动,我唯一的问题是让它褪色。我可以让globalAlpha函数工作,但它会影响画布区域中的所有艺术品。有没有一种方法可以影响一个元素?最终,我会希望在动画中根据计时器在不同的时间淡入多个元素,但如果我能首先让它工作,我可以从那里开始 window.addEventListener('load', eve

我试图在画布环境中淡出图像。基本上,我想做的是,当从左向右移动图像时,我想将其从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);
    }

欢迎提出任何建议

我想这个问题会给你一个方法

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


您不使用jQuery有什么特别的原因吗?您能将上下文设置为一个区域,然后修改alpha吗?知道jQuery是一条路要走,为了学习的目的猜测一下,我正在尝试进入,并尽可能多地从编码立场学习。。。但是jQuery肯定已经出现了。