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

脚本简介HTML5Canvas彩色小球碰撞运动特效是一款基于canvas加面向对象制作的运动小球动画特效。效果展示 http://hovertree.com/texiao/html5/

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

脚本简介

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


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

代码如下:

<!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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/120304.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • IIC通信协议技术说明

    IIC通信协议技术说明简介IICBus最早是Philips半导体开发的两线时串行总线,经常用于微控制器和外设之间的连接。IIC通信方式为半双工,只有一根SDA线,同一时间只可以单向通信,485为半双工,SPI和UART为全双工。网络拓扑SDA:串行数据线SCL:串行时钟线数据传输每个字节传输必须带有响应位ACK,相关的响应时钟也有主机产生,在响应的时钟脉冲期间(第9个时钟周期),发送端释放SDA线,接收端把SDA拉低。SCL第9位时钟高电平信号期间,SDA拉低代表了有ACK响应位。当出现非响应NACK位:

    2022年6月3日
    35
  • 我是互联网人,我没有做逃兵「建议收藏」

    我是互联网人,我没有做逃兵「建议收藏」作者|闫丽娇孔明明黎明唐亚华苏琦孟亚娜金玙璠本文经授权转载自燃财经(ID:rancaijing)一场突如其来的疫情,让本应该在春节休息的很多人,继续坚守在了工作岗位。特殊时…

    2022年5月7日
    48
  • SqlDataSource WEB控件:当DeleteCommandType=”storedProcedure”时「建议收藏」

    SqlDataSource WEB控件:当DeleteCommandType=”storedProcedure”时「建议收藏」设计Users表:UserID,NameArticles表:ArticleID,UserID,ArticleTitle生成视图:SELECT     dbo.Articles.ArticleID, dbo.Articles.ArticleTitle, dbo.Users.NameFROM         dbo.Articles INNER JOIN                      db…

    2022年7月26日
    3
  • cada0图纸尺寸_a0图纸尺寸[通俗易懂]

    cada0图纸尺寸_a0图纸尺寸[通俗易懂]a0图纸尺寸a0图纸尺寸问题:a0图纸尺寸答案:841mm*1189mm【相关阅读】1、什么是a0图纸a0图纸是一种很大的绘图纸,这种纸张比一般的复印纸要厚,也比一般的复印纸要黄一点,这种绘图纸一面比较光滑,适合画图用,另一面比较粗糙。但是很多人都感觉不出来,也看不出来。a0图纸广泛的运用于各种建筑设计,规划设计,工业设计,产品设计等等,很多这个专业的学生,从大一开…

    2022年6月20日
    70
  • 再生龙使用手册_龙再生

    再生龙使用手册_龙再生“为什么你的代码我跑不了?”搭建环境是一键非常有趣(令人讨厌)的事情。尤其对于任务重心不在搭建环境的人而言,更应该把有限的时间和精力用在核心任务上。下面推荐一款再生龙软件,能让你的U盘作为打包好的系统盘,实现快速备份、还原和部署整个系统环境。

    2022年10月25日
    0
  • 通过反射获取实例化

    通过反射获取实例化IMyServlet接口packagecn.itheima.web.servlet;publicinterfaceIMyServlet{publicvoidinit();publicvoidservice();publicvoiddestory();}接口的实现packagecn.itheima.web.servlet;publicclassMy

    2022年7月12日
    15

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号