canvas绘制动画效果

绘制一个笑脸,实现笑脸的左右匀速运动

html代码:

<canvas id="myCanvas" width="400px" height="400px"></canvas>

js代码:

<script type="text/javascript">
    function $(id)
    {
        return document.getElementById(id);
    }
    var i=0,j=300,t;
    function drawCirc(cxt,color,intX,intY,intR,intH,blnFill){
        cxt.beginPath();
        cxt.arc(intX,intY,intR,0,Math.PI*intH)

        if(blnFill){
            cxt.fillStyle=color;
            cxt.fill();
        }
        else{
            cxt.strokeStyle=color;
            cxt.lineWidth=2;
            cxt.stroke();
        }
        cxt.closePath();
    }
    function drawFace(cxt){
        drawCirc(cxt,‘#666‘,30,80,30,2,true);
        drawCirc(cxt,‘#fff‘,20,70,5,2,true);
        drawCirc(cxt,‘#fff‘,40,70,5,2,true);
        drawCirc(cxt,‘#fff‘,30,80,18,1,false);
    }
    function moveFace(){
        var cvs=$(‘myCanvas‘);
        var cxt=cvs.getContext(‘2d‘);
        cxt.clearRect(0,0,cvs.width,cvs.height);
        if(i<300){
            i=i+2;
            t=2;
        }
        else if(j>=0){
            j=j-2;
            t=-2;
        }
        else{
            i=0;
            j=300;
        }
        cxt.translate(t,0);
        drawFace(cxt);
    }

    window.onload=function(){
        var cvs=$(‘myCanvas‘);
        var cxt=cvs.getContext(‘2d‘);
        drawFace(cxt);
        setInterval(moveFace,100);

    };

</script>

时间: 2024-10-26 12:16:34

canvas绘制动画效果的相关文章

h5+canvas绘制动画时钟

h5+canvas绘制动画时钟 效果图,这个是截图,可以动的, 代码如下: <!DOCTYPE html><html><head><title>动画效果</title></head> <body> <canvas id="anm" width="600" height="600" style="border:1px solid gray"

使用canvas绘制动画时钟

一代码 <!DOCTYPE html > <head> <meta charset="UTF-8" > <title>绘制动态时钟</title> <script type="text/javascript"> var canvas; var context; function window_onload() { canvas = document.getElementById("ca

Android中使用SurfaceView和Canvas来绘制动画

其实每个View中都有Canvas可以用来绘制动画,只需要在这个View中重载onDraw()方法就可以,但是SurfaceView类是一个专门用来制动动画的类. Canvas(中文叫做"画布")就和HTML5中的canvas标签一样可以在一定区域内自由绘制图形.Canvas+SurfaceView制作的动画与View Animation和Property Animation这类动画比起来更加适合大量的集中播放的动画,比如游戏画面.相机的图像显示等. 因为SurfaceView通常会在

canvas绘制简易动画

在canvas画布中制作动画相对来说很简单,实际上就是不断变化的坐标.擦除.重绘的过程 1.使用setInterval方法设置动画的间隔时间. setInterval(code,millisec) setInterval方法html中固有方法,这个方法接受两个参数,第一个函数表示执行动画的函数,第二个参数为间隔时间,单位是(毫秒). 2.用来绘图的函数 1)通过不断变换X和Y的坐标实现动画的效果. 2)在该函数中先用clearRect方法将画布整体或者局部擦除. 擦除图像clearRect方法:

教你如何在网页上用利用H5快速实现动画效果

在web开发中,GIF动画效果是随处可见,比如常见的loading加载.人物奔跑的gif图片等等,那么这些都是怎么实现的呢?其实实现的原理很简单,简而言之,这些所谓的动画都是一帧一帧的图片经过一段时间的间隔做出位移而来的:譬如,我们在PS里面制作GIF动画,首先要把每一帧所需要的图片制作出来,然后再通过导出的方式把GIF图片保存下来:相信会PS的同学,都可以熟练的制作一个基本的GIF动画图片:在web开发中,要实现这样的gif图片,也有很多方法:在这给读者提供一个思路,就是利用html5 can

使用Canvas绘制简单的时钟控件

Canvas是HTML5新增的组件,它就像一块幕布,可以用JavaScript在上面绘制各种图表.动画等. 没有Canvas的年代,绘图只能借助Flash插件实现,页面不得不用JavaScript和Flash进行交互.有了Canvas,我们就再也不需要Flash了,直接使用JavaScript完成绘制. 基本使用 在html源码中只要像普通标签那样使用即可,比如下面的示例,但是在一些老旧的浏览器在中是不支持canvas的,因此我们常在canvas标签中提示用户,具体代码如下所示. <canvas

[Canvas学习]动画

学习目的:通过JavaScript操控<canvas>对象,实现交互动画. 动画的基本步骤 1. 清空canvas,使用clearRect方法 2. 保存canvas状态 3. 绘制动画图形 4. 恢复canvas状态 操控动画Controlling an animation setInterval(function, delay) setTimeout(function, delay) requestAnimationFrame(callback) 太阳系运动的小例子 <canvas

用css3和canvas实现的蜂窝动画效果

近期工作时研究了一下css3动画和js动画.主要是工作中为了增强页面的趣味性,大家都有意无意的加入了非常多动画效果.当然大部分都是css3动画效果.能够gpu加速,这会降低移动端的性能需求. 今天主要说的是蜂窝效果.详细效果大家等下能够执行源代码.这里就不放gif图了. css3的原理非常easy,就是通过更改background-size,因为css3中的background中能够设置repeat属性,来使背景图片在x,y方向平铺.一開始先设置background-size:10%, 10%,

HTML5 Canvas动画效果实现原理

在线演示 使用HTML5画布可以帮助我们高速实现简单的动画效果.基本原理例如以下: 每隔一定时间绘制图形而且清除图形,用来模拟出一个动画过程,能够使用context.clearRect(0, 0, x, y)方法来刷新须要绘制的图形 首先是绘制图形的方法,例如以下: function myAnimation() { ctx.clearRect(0, 0, canvas_size_x, canvas_size_y); if (x_icon < 0 || x_icon > canvas_size_