zoukankan      html  css  js  c++  java
  • canvas的下雪效果

    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
    #myCanvas{
    background-color: #7ACCC8;
    margin: auto;
    display: block;
    }
    #movediv{
    position: relative;
    left: 0;
    100px;
    height: 100px;
    background-color: #faa;
    }
    </style>
    </head>
    <body>
    <h2>canvas的下雪效果</h2>
    <canvas id="myCanvas" width="800" height="400">
    该浏览器不兼容canvas标签!

    </canvas>
    <img id="imgdom" src="img/snow.png" alt="#" style="display:none;">
    </body>
    <script>
    window.onload = function(){
    var c = document.getElementById('myCanvas');

    var ctx = c.getContext('2d');

    var Ary = [];

    var canvasImg = document.getElementById('imgdom');

    movedarw();

    function movedarw(){
    setInterval(function(){
    var rx = Math.random()*1500-500;
    var rxadd = Math.random();
    var rwh = Math.random()*20;
    var newarc = {
    x:rx,
    y:-50,
    w:1,
    h:Math.random()*50+10,
    color:"#7ACCC8",
    fun:function(){
    ctx.beginPath();
    ctx.fillStyle = newarc.color;
    ctx.drawImage(canvasImg,newarc.x,newarc.y,rwh,rwh);
    },
    }
    Ary.push(newarc);
    console.log(Ary);

    var set = setInterval(function(){
    newarc.y += 1;
    newarc.x += rxadd;
    if(newarc.y >= 400){
    clearInterval(set);
    Ary.shift(newarc);
    }
    },10)
    },10);
    }

    function draw(){
    ctx.clearRect(0,0,800,400);
    Ary.forEach(function(obj){
    obj.fun();
    })
    requestAnimationFrame(draw);
    }
    draw();
    }
    </script>
    </html>

  • 相关阅读:
    Vue
    多线程
    多进程进阶
    CentOS7中安装MySQL
    socket
    回顾
    Hibernate学习一:Hebinate入门以及一些小问题
    struts2学习二:Tomcat的部署目录和访问路径问题
    struts2学习一:hello struts2及struts2环境配置中遇到的问题
    Scanner几个问题与正则简介
  • 原文地址:https://www.cnblogs.com/li-123/p/7094541.html
Copyright © 2011-2022 走看看