• canvas


    canvas的水波效果,第一步要绑定一个点击函数,获取鼠标的坐标,然后申明一个函数把创建远的canvas代码放进去(

    ctx.beginPath();
    ctx.fillStyle = 'rgba(255,255,255,'+opTis+')';
    ctx.arc(x, y, yuan_r, 0, 2 * Math.PI);
    ctx.fill()

    )根据半径和透明度的参数进行更改

    判断当透明度达到多少时,

    擦掉画出来的对象(圆),

    在函数中执行函数,形成递归

    这里要使用一个代码函数(

    requestAnimationFrame()进行递归,使得清除上一个不出现闪屏叠加的bug

    代码:

    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title></title>
    <style>
    *{
    margin: 0px;
    padding: 0px;
    }
    body{
    background-color: beige;
    }
    #myCanvas{
    margin: auto;
    display: block;
    /* 500px;*/
    /*height: 300px;*/
    background-color: gray;
    }
    .miDian{
    position: absolute;
    }
    </style>
    </head>
    <body>
    <canvas id="myCanvas" width="800" height="350">

    </canvas>
    </body>
    <script>
    var c=document.getElementById('myCanvas');
    //方法,相当于声明,之后就可以通过getContext进行canvas的绘制
    var ctx= c.getContext('2d');
    myCanvas.onclick= function () {
    var opTis = 1;
    var yuan_r = 0;
    var e = event || e,
    x = e.clientX - 188,
    y = e.clientY;
    console.log(x, y);
    function rew() {
    yuan_r += 3;
    opTis -= 0.03;
    ctx.beginPath();
    ctx.fillStyle = 'rgba(255,255,255,'+opTis+')';
    ctx.arc(x, y, yuan_r, 0, 2 * Math.PI);
    ctx.fill();

    if (opTis <= 0) {
    ctx.clearRect(0, 0, 800, 350);
    }
    requestAnimationFrame(rew)
    }
    rew()
    }
    
    
  • 相关阅读:
    Grep案例(本地模式)
    Java环境变量 和 Hadoop环境变量 配置
    sudo设置
    Linux配置
    mysql安装(前提:Linux最小化安装)
    test
    Floyd算法【最短路1】
    HttpClient调用接口发送文件
    Spring boot 论坛项目实战_07
    Spring boot 论坛项目实战_06
  • 原文地址:https://www.cnblogs.com/superxu/p/7084977.html
Copyright © 2020-2023  润新知