问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

css3怎么做出按下按钮就会有爆炸的效果

发布网友 发布时间:2022-04-06 13:12

我来回答

1个回答

热心网友 时间:2022-04-06 14:42

修改相关的参数,可以达到爆炸效果

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>*Love</title>
</head>
<body>
<canvas width="100" height="100" style="border: 1px black solid">
    必须要把style写在内联,不然会变成椭圆。而且width与height要单独写出来
    注意:1,每画一个图形都要提起笔。不然会连在一起
    2,arc的(centerX[圆心横坐标,以父节点的右上角为坐标原点,向左向下建立坐标轴],centerY,r[半径],
    startAngle[起始点的角度。起始以(1,0)表示0,(0,1)表示3/2*PI计算。当设置为逆时针的时候画出来是起点到终点之间的扇形出去中心三角],
    endAngle,anticlockwise(是否逆时针))
    3,画图的时候要计算好坐标
    4,最好以角度值百分比计算。流式布局更能适应各种大小的缩放
    5,注意提取公共函数
    6,要划分步骤
    7,注意上一幅图与下一幅图的关系。用clearRect来清除
</canvas>
<script>
    var canvas=(document.getElementsByTagName("canvas"))[0];//获取绘图区域,是一个正方形区域
    var ctx=canvas.getContext("2d");//获取画笔
    //必须写在外面,公共的
    var centerX=(canvas.width)*0.5;
    var centerY=(canvas.height)*0.5;//获取中心,是一个正方形
    //获得一个爱心
    function love(color,centerX,centerY,size){
        ctx.beginPath();
        //上半部
        var smallRadius=Math.round(centerX/size);//小圆的半径
        var smallMoveLen=smallRadius*Math.sqrt(3)/2;
        ctx.fillStyle=color||"red";
        ctx.arc(centerX-smallMoveLen,centerY,smallRadius,Math.PI*7/4,Math.PI,true);
        ctx.arc(centerX+smallMoveLen,centerY,smallRadius,0,Math.PI*5/4,true);
        //下半部
        var bigRadius=smallRadius*2.73;
        ctx.arc(centerX+smallMoveLen,centerY,bigRadius,Math.PI,Math.PI*0.6,true);
        ctx.arc(centerX-smallMoveLen,centerY,bigRadius,Math.PI*0.4,0,true);
        ctx.fill();
        ctx.closePath();
    }
    love("grey",centerX,centerY,8);//默认灰色
    //注册监听
    canvas.addEventListener("click",function () {
        if(ctx.fillStyle=="#808080"){//表示为灰色
           // alert("点赞");
            //1,爱心消失//清除画板内容
            ctx.clearRect(0,0,centerX*2,centerY*2);
            //动态图
            var bigRadius=centerX/2;
            var midRadius=centerX/5;
            var smallRadius=centerX/10;
            //2,小圆,圆心都是中心位置
            setTimeout(function () {
                ctx.beginPath();
                ctx.fillStyle="#FF6BDB";
                ctx.arc(centerX,centerY,smallRadius,0,2*Math.PI,false);
                ctx.fill();
                ctx.closePath();//必须要提笔。不然和前面一只笔相当于没提起来
            },100);
            //3,中圆
            setTimeout(function () {
                ctx.beginPath();
                ctx.fillStyle="#9FD5FF";
                ctx.arc(centerX,centerY,midRadius,0,2*Math.PI,false);
                ctx.fill();
                ctx.closePath();
            },200);
            //4,大圆
            setTimeout(function () {
                ctx.beginPath();
                ctx.fillStyle="#FF84A6";
                ctx.arc(centerX,centerY,bigRadius,0,2*Math.PI,false);
                ctx.fill();
                ctx.closePath();
            },300);
            //5,小爱心
            setTimeout(function () {
                ctx.clearRect(0,0,centerX*2,centerY*2);
                ctx.beginPath();
                ctx.fillStyle="#FF84A6";
                ctx.arc(centerX,centerY,bigRadius,0,2*Math.PI,false);
                ctx.fill();
                ctx.closePath();
                ctx.beginPath();
                ctx.fillStyle="#ffffff";
                ctx.arc(centerX,centerY,midRadius*2,0,2*Math.PI,false);
                ctx.fill();
                ctx.closePath();
                ctx.beginPath();
                love("purple",centerX,centerY,16);
                ctx.closePath();
            },400);
            //6,四周小圆
            setTimeout(function () {
                ctx.clearRect(0,0,centerX*2,centerY*2);
                var e=bigRadius/(Math.sqrt(2));
                var centerXArr=[centerX-bigRadius,centerX-e,centerX,centerX+e,centerX+bigRadius,centerX+e,centerX,centerX-e];
                var centerYArr=[centerY,centerY-e,centerY-bigRadius,centerY-e,centerY,centerY+e,centerY+bigRadius,centerY+e];
                for(var i=0;i<8;i++){
                    ctx.beginPath();
                    ctx.fillStyle="blue";
                    ctx.arc(centerXArr[i],centerYArr[i],smallRadius/4,0,2*Math.PI,false);
                    ctx.fill();
                    ctx.closePath();
                }
                ctx.fillStyle="#ff0000";
                love("ff0000",centerX,centerY,8);//red
            },500);
            //7,红色大爱心
            setTimeout(function () {
                ctx.clearRect(0,0,centerX*2,centerY*2);
                ctx.beginPath();
                love("ff0000",centerX,centerY,8);
                ctx.closePath();
            },600);
        }
        else if(ctx.fillStyle=="#ff0000"){//表示为红色
           // alert("取消赞");
            ctx.fillStyle="#ff0000";
            love("#808080",centerX,centerY,8);
        }
    },false);
</script>
</body>
</html>

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
手机壁纸花卉红色手机壁纸花卉 辽宁智能五芯防水连接器 军工产品浅谈——航空插头 xp电脑系统修复XP系统怎么恢复出厂设置 ...表编辑器后打不开任何文件,无需重装系统,电脑盲都能用 粼基本信息 粼五笔怎样打? 【微科普】想变成光?先搞清楚光是什么吧! 手机被拉黑后打电话是什么提示? 物流管理专业对数学的要求高么 白色衣服不小心染上了锈迹怎么洗掉? 产后怎么丰胸中匦 求一些女的穿的很* 很暴漏 很漂亮 就是很有*力很有视觉美得那种照片,越多越好 韩国的一款丰胸霜 男生喜欢一个女生一般会持续多久? 韩国妃嫚姿丰胸可信吗? 产后手术丰胸对身体有影响吗 产后丰胸用什么产品 良心推荐三大产后丰胸产品 韩国freeset丰胸霜安全吗?谁用过了 给我图片,美女的三大含羞部分的,真人 韩国freeset丰胸霜有用的吗 找一张特别有感觉的美女图片 产后宝妈做韩国假体隆胸手术为什么更推荐魔滴假体? 谁有性感美女的照片? 在哪可以买到韩国新生活丰胸贴 从哪能搜到激情性感高清美女图片 梦见自己又生了一个两个月大的女儿。却被大蟒蛇缠死给吞了。是什么征兆? 梦见女儿被蛇吞了是什么意思 梦见天空中有条蛇把我和女儿吞了 梦见女儿被大蛇吞了而我有把蛇打死了,这梦好吗 白衣服上面弄上锈了,有什么办法才能去除锈? ki|ometre复数形式是什么? kilometer和foot意思一样吗 four kilometers 系动词是复数还是单数 kilometers作主语时,谓语动词用什么? people作主语时呢? 面膜一般男女都可以用吗? 男士可以用女士面膜吗。男士面膜和女士面膜有什么不同之处吗? IRY聚补水面膜男女都可以用吗? 男女通用补水面膜怎么样 补水面膜 !!有男女都能用的补水面膜 吗 美白面膜是男女通用吗? 补水类型的面膜分男女吗? 面膜有男女之分吗,男的可以用女士面膜吗,有什么效果和影响?? 本人男,24岁,从来都没用过护肤品。最近打算敷面膜。不知道我这男人敷女人用的面膜,有什么副作用?或 补水面膜有哪些男士可以用的 男生可以用面膜补水吗 jQuery实现两款有动画功能的导航菜单代码 一比一百比例怎么计算 1:100怎么算? 平面图比例1:100怎么算?