HTML5 Canvas彩色小球碰撞运动特效

脚本简介

HTML5 Canvas彩色小球碰撞运动特效是一款基于canvas加面向对象制作的运动小球动画特效。

效果展示 http://hovertree.com/texiao/html5/39/

效果图如下:

代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>HTML5 Canvas彩色小球碰撞运动特效 - 何问起</title>
    <base target="_blank" />

    <style>
        #hovertreeball {
            border: 1px dashed #999;
            box-shadow: 0px 4px 40px #233;
            background: black;
        }
        .hovertreeinfo{text-align:center;}
        a{color:blue;}
    </style>
</head>
<body>
    <div class="hovertreeinfo" >
        提示:可以点击按钮改变背景颜色<br />
        <canvas id="hovertreeball" width="800" height="600"></canvas>
    </div>
<script type="text/javascript">
    var canvas = document.getElementById("ho"+"vertreeball");
    var context = canvas.getContext("2d");
    var maxWidth = canvas.width;
    var maxHeight = canvas.height;
    var colors = ["#33B5E5", "#0099CC", "#AA66CC", "#9933CC", "#99CC00", "#669900", "#FFBB33", "#FF8800", "#FF4444", "#CC0000"]

    //随机数
    function random(min, max) {
        return Math.floor(Math.random() * (max - min) + min)
    }

    //构造函数
    function Ball() {
        this.a = true;
        this.b = true;
        this.r = random(10, 30);
        this.ballColor = { color: colors[Math.floor(Math.random() * colors.length)] }
        this.vx = random(30, maxWidth - 30);
        this.vy = random(30, maxHeight - 30);
        this.ispeed = random(1, 10);
        this.ispeed2 = random(1, 10);
    }

    // 面向对象
    Ball.prototype.moveBall = function () {
        context.beginPath();
        if (this.a) {
            this.vx += this.ispeed;
            if (this.vx >= maxWidth - this.r) {
                this.a = false;
            }

        } else {
            this.vx -= this.ispeed;
            if (this.vx <= this.r) {
                this.a = true;
            }
        }

        if (this.b) {
            this.vy += this.ispeed2;
            if (this.vy >= maxHeight - this.r) {
                this.b = false;
            }

        } else {
            this.vy -= this.ispeed2;
            if (this.vy <= this.r) {
                this.b = true;
            }
        }

        context.fillStyle = this.ballColor.color;
        context.arc(this.vx, this.vy, this.r, 0, Math.PI * 2, false);
        context.fill();
    }

    var Aball = [];
    for (var i = 0; i < 100; i++) {
        Aball[i] = new Ball();
    }

    setInterval(function () {
        context.clearRect(0, 0, canvas.width, canvas.height)
        for (var i = 0; i < 100; i++) {
            Aball[i].moveBall();
        }

    }, 30)
    function hovertreecolor() {
        if (canvas.style.backgroundColor != "white") {
            canvas.style.backgroundColor = "white";
        }
        else {
            canvas.style.backgroundColor = "black";
        }
    }
</script>

<div style="text-align:center;margin:10px 0; font:normal 14px/24px ‘MicroSoft YaHei‘;">
    <button id="hovertreechange">改变背景颜色</button>
<p>适用浏览器:FireFox、Chrome、Safari、Opera、傲游、搜狗、世界之窗等. 不支持IE8及以下浏览器。</p>
<p>来源:<a href="http://hovertree.com/" target="_blank">何问起</a> <a href="http://hovertree.com/menu/texiao/">网页特效</a>
<a href="http://hovertree.com/h/bjaf/mll8cpr3.htm">代码说明</a></p>
</div>
    <script>
        document.getElementById("hover" + "treechange").addEventListener("click", hovertreecolor)
    </script>
</body>
</html>

转自:http://hovertree.com/h/bjaf/mll8cpr3.htm

更多特效:http://www.cnblogs.com/roucheng/p/texiao.html

时间: 2024-12-13 14:52:59

HTML5 Canvas彩色小球碰撞运动特效的相关文章

用HTML5 Canvas为Web图形创建特效

HTML5 Canvas 将使用像素在屏幕上绘制图形图像. 本节演示了五种用于操作像素以创建摄影特效的 Canvas 技术. 您可使用这些技术来生成独具特色的图像,为您的网站.博客.视频游戏画面.广告和插图等提供信息或艺术趣味. 本教程包含五个独立的带有注释的代码示例,为您演示了这些技术如何改善一张有关美洲鹰的摄影图像. 这些示例解释了如何执行以下操作: 将美洲鹰的照片放置在一个圆形中;向背景中添加白雪纹理图片;大幅改变色彩构成;使图像变得透明;并将整张图片从彩色变为黑白. 本主题介绍如何使用

html5 canvas实现图片玻璃碎片特效

今天要为大家带来一款html5 canvas实现的图片玻璃碎片特效.图片以玻璃碎片的形式出现到界面中,然后似玻璃被打碎的效果渐消息.效果图如下: 在线预览   源码下载 实现代码: html代码: <img src="city_copy.jpg" id="src_img" class="hidden"> <div id="container" style="-webkit-perspective:

基于HTML5 Canvas粒子效果文字动画特效

之前我们分享过很多超酷的文字特效,其中也有利用HTML5和CSS3的.今天我们要来分享一款基于HTML5 Canvas的文字特效,输入框中输入想要展示的文字,回车后即可在canvas上绘制出粒子效果的文字动画,相当酷的动画效果. 在线预览   源码下载 实现的代码. html代码: <canvas class="canvas"></canvas> <div class="help"> ?</div> <div c

HTML5 canvas粒子系统打造逼真飘雪特效

这是一款效果非常炫和逼真的HTML5 canvas飘雪效果.该飘雪效果使用canvas的粒子系统来制作,使用粒子来制作各种雪花效果.它的背景使用CSS来渲染,你可以为这个下雪效果更换背景颜色或使用背景图片. 在线演示:http://www.htmleaf.com/Demo/201503191547.html 下载地址:http://www.htmleaf.com/html5/html5-canvas/201503191546.html

4款基于html5 canvas充满想象力的重力特效

今天给大家分享4个物理和重力实验,用来展示 html canvas 的强大.几年前,所有这些实验都必须使用 Java 或 Flash 才能做.在下面这些惊人的例子中,就个人而言,我比较喜欢仿真布料的那个,我简直不敢相信它是使用html canvas 做出来的.效果图如下: 在线预览   源码下载 主页面代码: <iframe scrolling="no" frameborder="0" width="800px;" height="

基于HTML5 Canvas实现的图片马赛克模糊特效

效果请点击下面网址: http://hovertree.com/texiao/html5/1.htm 一.开门见山受美国肖像画家Chuck Close的启发,此脚本通过使用HTML5 canvas元素把图像转换成像素形式,这基本上是一个为canvas imageData功能的简单演示. 此脚本现存于GitHub上,您可以在那里下载到脚本和示例.在GitHub上查看像素化资源 二.选项此方法接受一个对象数组,每个对象都拥有一组选项.resolution : 渲染像素间的像素距离,必须的.shape

HTML5 Canvas实现的图片马赛克模糊特效

要想让图片像素化,首先调用如下脚本:<script type="text/javascript" src="http://hovertree.com/texiao/html5/1/js/close-pixelate.js"></script>然后调用方法closePixelate,更具体的是:图片dom.closePixelate(选项参数) 此脚本可以应用于各类图片.根据HTML5规范,浏览器禁止任何外部托管图片上使用getImageDat

7个惊艳的HTML5 Canvas动画效果及源码

HTML5非常强大,尤其是现在大部分浏览器都支持HTML5和CSS3,用HTML5制作的动画也多了起来.另外,Canvas上绘制图形非常简单,本文就分享了一些强大的HTML5 Cnavas动画,一起来看看. 1.HTML5 Canvas瀑布动画 超逼真 这是一个很逼真的HTML5瀑布动画,基于Canvas实现的,效果相当酷. 在线演示   /   源码下载 2.HTML5 Canvas彩色像素进度条动画 这也是一款基于HTML5 Canvas的动画特效,它是一个很有创意的HTML5进度条,大家可

HTML5 Canvas绚丽的小球详解

实例说明: 实例使用HTML5+CSS+JavaScript实现小球的运动效果 掌握Canvas的基本用法 技术要点: 从需求出发 分析Demo要实现的功能 擅于使用HTML5 Canvas 参考手册 主要分为两个部分: 静态布局:小球的设计,包括小球的位置.颜色.大小和大小变化情况等,初始化小球的函数,渲染函数,Update函数 动态主体:变量.数组的的定义,小球显示时长定时,鼠标移动触发小球运动的函数 代码部分: canvas标签,提供绘图的画布 js逻辑:静态小球 其中,_init()函数