HTML+CSS实现旋转太极图动态效果

如果对代码有疑惑,可以看我的个人视频
https://www.bilibili.com/video/BV1vV411r75p/
效果
在这里插入图片描述
静止太极图
在这里插入图片描述
动态太极图
动态太极图代码

        body {
            background: silver;
            height: 2000px;
        }
        
        #canvas {
            position: absolute;
            top: 20%;
            left: 50%;
            margin-left: -250px;
            animation: rotate1 .1s linear infinite; 
        }
        
        @keyframes rotate1 {
            100% {
                transform: rotate(360deg);
            }
        }
 <div>
        <!-- canvas画布 -->
        <!-- IE9 -->
        <canvas id="canvas" width="500" height="500"></canvas>
    </div>
 let ctx = document.getElementById("canvas").getContext("2d");
        // 创建context对象
        // 左大半圆
        ctx.beginPath();
        // 起始路径
        ctx.fillStyle = "red";
        // 填充颜色
        ctx.arc(250, 250, 200, Math.PI / 2, Math.PI * 1.5, false);
        // 创建弧/曲线
        //arc(x,y,r,起始角,结束角,顺时针) 
        ctx.closePath();
        // 从当前点返回起始路径
        ctx.fill();
        // 填充绘图
        // 右大半圆
        ctx.beginPath();
        ctx.fillStyle = "#000";
        ctx.arc(250, 250, 200, Math.PI / 2, Math.PI * 1.5, true);
        ctx.closePath();
        ctx.fill();
        // 右小半圆
        ctx.beginPath();
        ctx.fillStyle = "red";
        ctx.arc(250, 150, 100, Math.PI / 2, Math.PI * 1.5, true);
        ctx.closePath();
        ctx.fill();
        // 左小半圆
        ctx.beginPath();
        ctx.fillStyle = "#000";
        ctx.arc(250, 350, 100, Math.PI / 2, Math.PI * 1.5, false);
        ctx.closePath();
        ctx.fill();
        // 上小圆
        ctx.beginPath();
        ctx.fillStyle = "#000";
        ctx.arc(250, 150, 25, 0, Math.PI * 2);
        ctx.closePath();
        ctx.fill();
        // 下小圆
        ctx.beginPath();
        ctx.fillStyle = "red";
        ctx.arc(250, 350, 25, 0, Math.PI * 2);
        ctx.closePath();
        ctx.fill();
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值