`
wjlgryx
  • 浏览: 306894 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

html5 实现动画(二)

阅读更多
<canvas id="canvas2" width="250" height="300" style="background-color:black">
    你的浏览器不支持 Canvas 标签,请使用 Chrome 浏览器 或者 FireFox 浏览器
</canvas><br/>
<input type="button" value="开始" onclick="move_box2()"/>
<input type="button" value="暂停" onclick="stop()"/>
<script type="text/javascript">
    //定时器
    var interval=null;
    //停止动画
    function stop(){
        clearInterval(interval);
    }
    //===================================================================
    //重新组织代码
    //====================================================================
    //方块的构造函数
    function Box(color,x,y,w,h,delta){
        this.color=color;
        this.x=x;
        this.y=y;
        this.w=w;
        this.h=h;
        this.delta=delta;
        //三十帧
        this.fps=30;
        //每一帧的延迟时间
        this.delay=1000/this.fps;
        //上一次重绘的时间
        this.last_update=0;
    }
    //方块更新
    Box.prototype.update=function(canvas){
        //获取当前时间
        var now=(new Date()).getTime();
        //如果达到了延迟时间,则更新数据
        if((now-this.last_update)>this.delay){
            //改变 y 坐标
            this.y=this.y+this.delta;
            //上边缘检测
            if(this.y<0){
                this.y=0;
                this.delta=-this.delta;
            }
            //下边缘检测
            if((this.y+this.h)>canvas.getAttribute("height")){
                this.y=canvas.getAttribute("height")-this.h;
                this.delta=-this.delta;
            }
            //记下最新一次绘制时间
            this.last_update=now;
        }
    }
    function move_box2(){
        //停止动画
        stop();
        //画布对象
        var canvas=document.getElementById("canvas2")
        //获取上下文对象
        var ctx = canvas.getContext("2d");
        //清空画布
        ctx.clearRect(0,0,canvas.getAttribute("width"),canvas.getAttribute("height"));
        //创建多个方块对象
        var boxes=[];
        boxes[0]= new Box("red",3,2,10,35,2,10);//速度10
        boxes[1]= new Box("blue",60,28,44,15,5);//速度20
        boxes[2]= new Box("green",130,200,23,18,10);//速度30
        boxes[3]= new Box("pink",200,150,35,10,20);//速度40
        //开始动画绘制
        interval = setInterval(function(){
            for(var i=0;i<boxes.length;i++){
                //取出一个方块
                var box=boxes[i];
                //清空这个方块
                ctx.clearRect(box.x,box.y,box.w,box.h);
                //更新数据
                box.update(canvas);
                //保存状态
                ctx.save();
                //设置颜色
                ctx.fillStyle=box.color;
                //移动坐标
                ctx.translate(box.x,box.y);
                //重新绘制
                ctx.fillRect(0,0,box.w,box.h);
                //恢复状态
                ctx.restore();
            }
        },1);//尽可能快的循环
    }
</script>
分享到:
评论

相关推荐

    HTML5过场动画切换

    二、HTML5动画技术 1. CSS3动画:CSS3中的`@keyframes`规则允许开发者定义动画的起始和结束状态,通过`animation`属性将这些关键帧应用到元素上。例如,可以创建淡入淡出、旋转、平移等效果。 2. JavaScript和Web ...

    html5 实现动画(一)

    这篇博客“HTML5实现动画(一)”可能详细介绍了如何利用HTML5的特性来创建动态效果。我们将围绕HTML5动画的核心技术进行深入探讨。 首先,HTML5引入了`&lt;canvas&gt;`元素,这是一个画布,允许开发者通过JavaScript进行...

    html5实现的动画小人

    这个“html5实现的动画小人”很可能是一个利用HTML5的Canvas元素和JavaScript来创建的动态图形实例。Canvas是HTML5提供的一种绘图API,允许开发者在网页上进行像素级别的图像处理。 在HTML5的Canvas中,动画的实现...

    唯美表白动画代码jQuery跟Html5实现

    在前端Web开发领域,"唯美表白动画代码jQuery跟Html5实现"是一个有趣且富有创意的项目,它结合了现代Web技术的力量,为用户提供了一个浪漫的情人节表白平台。这个项目的核心在于利用jQuery库和HTML5的新特性来创建...

    html5字符动画

    HTML5的Canvas元素提供了一个二维绘图环境,通过JavaScript来绘制图形和动画。字符动画可能利用Canvas API对每个字符进行定位、绘制和动画处理,创造出各种动态效果。 2. **CSS3动画** CSS3中的`@keyframes`规则...

    html5 实现动画(三)

    在本篇博客“HTML5实现动画(三)”中,我们将深入探讨HTML5在创建动态效果和动画方面的强大功能。HTML5引入了新的元素、API和特性,使得开发者无需依赖Flash或其他外部插件就能实现丰富的交互式动画。下面将详细...

    HTML5实现的超酷3D实景地图动画特效源码

    在这个“HTML5实现的超酷3D实景地图动画特效源码”中,我们可以深入探讨HTML5如何与3D技术结合,创造出生动逼真的地图体验。 首先,HTML5的Canvas元素是实现3D效果的关键。Canvas是一个二维绘图接口,通过...

    HTML5 +JS实现的动画

    在“HTML5 + JS实现的动画”这个主题中,我们将深入探讨如何利用这两种技术来创建引人入胜的动画效果。 HTML5是超文本标记语言的最新版本,它引入了许多新的元素和API,旨在提升网页的语义性、可访问性和功能。其中...

    html5实现的页面滚动图片动画加载特效源码.zip

    在本资源"html5实现的页面滚动图片动画加载特效源码.zip"中,我们可以深入探讨HTML5如何实现页面滚动时的图片动画加载效果。 首先,HTML5的新特性之一是其离线存储机制,如离线存储API(Application Programming ...

    html5 canvas小人跳舞动画特效

    这个"html5 canvas小人跳舞动画特效"是一个利用Canvas API实现的交互式动画示例,它展示了如何通过编程方式创建动态、生动的视觉效果。 在Canvas中,我们可以使用`canvas.getContext('2d')`获取2D渲染上下文,然后...

    html实现花瓣下落动画

    html实现花瓣下落动画

    HTML5实现五彩烟花动画特效,canvas炫彩烟火,高质量js源代码!

    HTML5实现五彩烟花动画特效,canvas炫彩烟火,高质量js源代码! HTML5实现五彩烟花动画特效,canvas炫彩烟火,高质量js源代码! HTML5实现五彩烟花动画特效,canvas炫彩烟火,高质量js源代码! HTML5实现五彩烟花...

    jQuery Html5实现唯美表白动画代码.zip

    `jQuery+Html5实现唯美表白动画代码`可能是一个包含具体实现的JavaScript文件,而`js`目录可能包含了其他的辅助脚本或库。 为了实现这样一个表白动画,你需要按照以下步骤进行: 1. 创建HTML结构,添加必要的元素...

    HTML5实现圣诞雪人动画代码.zip

    Canvas提供了一个二维绘图环境,通过JavaScript可以动态绘制图形,实现动画效果。在这个案例中,雪人的跳跃动画就是在Canvas上进行的。开发者可能通过设置定时器(`setInterval`或`requestAnimationFrame`)来不断重...

    html5全屏滚动实例 完美实现全屏滚动带动画

    CSS3的过渡效果是实现动画的关键。通过设置`transition`属性,可以在属性值改变时平滑地过渡到新状态。例如,可以定义`transition: all 0.5s ease;`来使元素在0.5秒内平滑地完成所有属性的变化,`ease`是缓动函数,...

    HTML5实现动画效果的方式汇总

    Canvas是HTML5中的一个画布元素,通过JavaScript来绘制图形并实现动画。在提供的代码示例中,创建了一个canvas元素,并通过JavaScript获取其上下文对象(c),然后定义了一系列变量,如dx、carAlpha、carX等,用于...

    基于HTML的定格动画的实现

    虽然HTML本身并不支持动画,但我们可以通过CSS(层叠样式表)和JavaScript等技术来扩展其功能,实现动态效果。 1. **HTML结构** 在HTML中,我们通常会为每个帧创建一个`&lt;img&gt;`标签,每张静态图片代表动画中的一个...

    HTML5线条声波波纹动画特效.zip

    HTML5线条声波波纹动画特效是一个利用现代Web技术实现的动态视觉效果,它结合了HTML、CSS和JavaScript的力量,为网页添加了引人注目的交互性元素。在这个压缩包中,主要包含了一个名为"jiaoben8767"的文件,这可能是...

    基于html5 canvas实现的飘动的爱心心形动画特效

    在这个特定的场景中,我们讨论的是一个利用HTML5 Canvas实现的飘动的爱心心形动画特效,这通常用于节日、表白或者浪漫的场合,比如520这一天。 首先,我们需要理解Canvas的基本用法。Canvas是一个二维绘图上下文,...

Global site tag (gtag.js) - Google Analytics